Data Engineering

Data Engineering向けの高度なSQL

Window関数、再帰CTE、分析クエリ、最適化、EXPLAIN ANALYZE、インデックス作成、パーティショニング

20 面接問題·
Mid-Level
1

パーティション内の各行に一意の連番を割り当てるwindow関数はどれですか?

回答

ROW_NUMBER()は、パーティション内の各行に1から始まる一意の連番を割り当てます。等しい値に同じ番号を割り当てる可能性のあるRANK()やDENSE_RANK()とは異なり、ROW_NUMBER()はORDER BY句の値が同一であっても常に一意の番号を保証します。

2

RANK()とDENSE_RANK()の主な違いは何ですか?

回答

RANK()は同順位の後の番号付けにギャップを残します。例えば、2行が1位の場合、次の行は3位になります。DENSE_RANK()はギャップを残しません:2行が1位の後、次の行は2位になります。この違いはギャップが統計を歪める可能性のあるランキング分析において重要です。

3

window関数で累積合計(running total)を計算するにはどうすればよいですか?

回答

ORDER BY付きでフレームを明示しないSUM() OVERは、デフォルトでROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROWを使用し、現在の行を含むすべての先行行の合計を計算します。これは時系列または順次分析で累積合計を作成する標準的な動作です。

4

window関数におけるPARTITION BY句の役割は何ですか?

5

window関数で前の行の値にアクセスできる関数はどれですか?

+17 面接問題

次の面接に向けてData Engineeringをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める