📊 Associate Data Practitioner

Associate Data Practitioner 問題の一覧 › 2. データ分析とプレゼンテーション

日別売上テーブルで、各日の売上と直前日の売上の差分を求めたい。適切なSQLはどれか。

  1. SELECT dt, sales - LAG(sales) OVER (ORDER BY dt) AS diff FROM t
  2. SELECT dt, sales - FIRST_VALUE(sales) OVER (PARTITION BY dt) AS diff FROM t
  3. SELECT dt, sales - SUM(sales) AS diff FROM t GROUP BY dt
  4. SELECT dt, sales - LEAD(sales) OVER (ORDER BY dt DESC) AS diff FROM t WHERE dt = dt - 1
💡 答えと解説を見る
答え:A(SELECT dt, sales - LAG(sales) OVER (ORDER BY dt) AS diff FROM t)
LAG は直前の行の値を参照するウィンドウ関数で、日付順に並べれば前日との差分が得られる。FIRST_VALUE は先頭行の値、GROUP BY の集計では前日の値を参照できず、Dは構文・論理とも不適切。
関連サービス
ウィンドウ関数OVER (PARTITION BY .. ORDER BY ..)。累計・順位・LAG/LEAD
← 前の問題次の問題 →🎯 問題で学ぶで解く

※ 学習用に作成したオリジナル問題です。本番試験とは異なります。