Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。次に最大何人まで座れるかを求めるSQLについてです。『SQLで数列を扱う』では、以下のSQLが提示されています。第1段階:すべてのシーケンスを保持するビューを作る。Sequences);これらをwindow関数で書き換えてみます。テーブルのデータと出力結果を考えます。4答えは、下記となります。maxSeat_cnt;4つのselect文がありますが、最も内側のselect文の結果から解説していきます。0Lag関数を使ってseatの昇順での1行前のstatusを求めて、case式でそれが空ならば0、そうでなければ1とし、willSumを列別名としてます。willSumという列別名の通り、合計(累計)を求めるのに使います。3where句でstatus='空'の行を抽出して、window関数のsum関数でseatの昇順でのwillSumの累計を求め、makeGroupを列別名としてます。by句で使いグループ化します。4makeGroupでグループ化して、集合関数のmin関数でstart_seatを求め、集合関数のmax関数でend_seatを求め、集合関数のcount(*)でseat_cntを求め、window関数のmax関数でcount(*)の最大値を求めてます。『PostgreSQLの分析関数の衝撃1』で、最頻値(モード)を求めたSQLと同じような考え方です。4where句でseat_cnt=maxSeat_cntの行を抽出してます。まとめると、最初にcase式で、seatの昇順でstatus='空'になった(コントロールブレイクした)行を求めて、willSumとして累計を求めるのが1つめのポイントで、willSumの累計でグループ化してから集合関数とwindow関数を使うのが2つめのポイントとなります。(総集編)』で扱った旅人算の感覚を使ってもよいです。ケンジ)趣味が競技プログラミングなWebエンジニアで、OracleSQLパズルの運営者。AtCoderの最高レーティングは1204(水色)。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。12:00法務担当者、6割超が今後業務で「生成AIを使用したい」と回答。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。