Associate Data Practitioner 問題の一覧 › 2. データ分析とプレゼンテーション
各部門の従業員を給与の高い順に並べ、部門内で順位を付けたい(同順位があっても順位を飛ばさない)。BigQuery SQL で最も適切な関数はどれか。
- ROW_NUMBER() OVER (PARTITION BY dept ORDER BY salary DESC)
- RANK() OVER (ORDER BY salary DESC)
- DENSE_RANK() OVER (PARTITION BY dept ORDER BY salary DESC)
- NTILE(4) OVER (PARTITION BY dept ORDER BY salary DESC)
💡 答えと解説を見る
答え:C(DENSE_RANK() OVER (PARTITION BY dept ORDER BY salary DESC))
DENSE_RANK は同順位があっても次の順位を飛ばさず、PARTITION BY で部門ごとに計算できる。ROW_NUMBER は同値でも一意の連番になり、RANK は順位を飛ばし、NTILE は分位への分割であり順位付けではない(選択肢Bはさらに部門で分割していない)。
DENSE_RANK は同順位があっても次の順位を飛ばさず、PARTITION BY で部門ごとに計算できる。ROW_NUMBER は同値でも一意の連番になり、RANK は順位を飛ばし、NTILE は分位への分割であり順位付けではない(選択肢Bはさらに部門で分割していない)。
※ 学習用に作成したオリジナル問題です。本番試験とは異なります。