Menu
Coddy logo textTech

PARTITION BY criterion

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

チャレンジ

簡単

利用可能なテーブルとカラム:

  • <strong>doors</strong><strong>id</strong><strong>publication_year</strong>
  • <strong>doors_specs</strong><strong>id</strong><strong>country</strong><strong>color</strong>

工場ではドアを製造しています。publication_year2000より小さい、各countrycolorの組み合わせのドアに番号を付ける必要があります。このカラム名をrow_numにしてください。

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

自分で試してみよう

quiz icon腕試し

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

基礎のすべてのレッスン

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