Menu
Coddy logo textTech

PARTITION BY基準

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

OVER ()句のもう1つの選択肢はPARTITION BYです

これにより、各グループの行に個別に番号を付けることができます 

例:

idtype
132t1
52t2
92t1
154t3
198t1
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1

これにより、各タイプ内でそれぞれに番号を付ける列が生成されます:

idtyperow_num
132t11
52t21
92t11
154t31
198t13

id 92 は、type t1 における最小の id であるため、row_num 1 です。

注: ROW_NUMBER() では、各パーティション内で行に番号を付ける方法を決定するために、OVER() 内に ORDER BY 句が必要です。

PARTITION BY の中に複数の列を指定することもできます。

ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)
challenge icon

チャレンジ

簡単

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

  • doorsidpublication_year
  • doors_specsidcountrycolor

ある工場でドアを製造しています。publication_year2000より小さいドアについて、countrycolorの組み合わせごとに番号を付ける必要があります。この列にrow_numという名前を付けてください。

各グループ内では、idの昇順でドアに番号を付けます。仕様のないドアは無視してください。最終結果はidの昇順で並べ替えてください。 

自分で試してみよう

quiz icon腕試し

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

基礎のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド