ADP#1(data-analysis)
売上テーブル sales(order_id, customer_id, amount, ordered_at) から、顧客ごとに最新の注文 1 件を取得したいと考えています。BigQuery で最も簡潔に書けるクエリはどれですか。
正解:D
正解の根拠
QUALIFY 句はウィンドウ関数の結果に対して直接フィルタを適用できる BigQuery の構文で、サブクエリを使わずに「グループごとの最新 1 件」を取得できます。
| 句 | 役割 |
|---|---|
| PARTITION BY customer_id | 顧客単位で番号付け |
| ORDER BY ordered_at DESC | 新しい順 |
| QUALIFY = 1 | 各グループの先頭のみ抽出 |
不正解の理由
- B: GROUP BY だけでは行全体を取得できません。
- C: 全体で 1 件しか返りません。
- A: スカラー サブクエリが複数行を返しエラーになります。
参考:QUALIFY 句

コメント