Menu
Coddy logo textTech

ROW_NUMBER function

CoddyのSQLジャーニー「基礎」セクションの一部 — レッスン 57/72。

ウィンドウ関数は、現在の行に関連する一連の表行に対して計算を実行します。通常の集計関数とは異なり、ウィンドウ関数は結果を単一行にまとめません。

これらは、特に次のような場合に有用です:

  • 累積合計を計算する
  • グループ内の項目をランク付けする
  • 現在の行を前の行または次の行と比較する
  • 時間期間にわたるトレンドを分析する

例えば、ここに window functions の実際の使用例をいくつか挙げます:

  • 売上分析
    • 各年(1995、1997、1999)までの累積売上を計算する
    • 各四半期の売上上位製品を見つける
  • スポーツ統計
    • 異なる年ごとのオリンピックのメダル数を追跡する
    • 各競技期間(2000, 2004, 2008)のトップアスリートを特定する

ROW_NUMBER() は、最もシンプルなウィンドウ関数の一つです。これは、結果セット内の各行に一意の連続番号を割り当てます。これを使用する方法はこちらです:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

OVER 句を ROW_NUMBER() で使用することが必須です : ROW_NUMBER() OVER ()

例:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

これにより、1 から行の総数までをカウントする row_num 列が追加されます。

注意: OVER 句には、番号付けの動作を制御するための並べ替えおよびパーティショニングの指示を含めることができます。

challenge icon

チャレンジ

簡単

利用可能なテーブルと列:

  • <strong>liquids</strong>: <strong>id</strong>, <strong>density</strong>

密度が 5.677 より大きいすべての液体を取得してください。

結果に番号を付け(ROW_NUMBER() 関数を使用)、この列を row_num と名付けてください。

チートシート

ウィンドウ関数は、現在の行に関連する一連の表行に対して計算を実行し、結果を単一行に集約せずに返します。

ROW_NUMBER() は、各行に一意の連続番号を割り当てます:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

OVER 句は ROW_NUMBER() で必須です:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

自分で試してみよう

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン