このラボでは、営業企画から「顧客別の売上ランキング」「月次売上の累計推移」「一度も注文していない顧客の一覧」を頼まれたデータ担当の想定で、複数テーブルの結合とウィンドウ関数を実機で身につけます。
ブラウザで開く IDE の中に PostgreSQL が同居しており、受注管理システムから抜き出した 4 テーブル(顧客 10 社・製品 6 種・注文 40 件・明細 78 行)が最初から入っています。書いた SQL はその場で実行でき、判定ボタンで結果の行数や合計が正しいかを確認できます。
学習目標:
JOIN して、明細を注文単位に集計するCREATE VIEW で再利用できる形にするrank() OVER (ORDER BY ...) で順位を付けるsum() OVER (ORDER BY ...) で累計(ランニング トータル)を求めるLEFT JOIN と IS NULL で「対応する行が無いもの」を見つけるGROUP BY と集計関数(sum / count)の基本(「SQL 入門」ラボ相当)v_order_totals(40 行、合計 6,455,000)と v_monthly_running(最終月の累計 6,455,000)が作成されていることtop_customers.sql がウィンドウ関数でランキングし、1 位が 山田商事 になることno_orders.sql が LEFT JOIN で注文の無い 2 社を返すこと詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。
本番形式の問題で理解度を確認できます。各試験とも先頭 15 問は無料です。