PARTITIONとORDER
CoddyのSQLジャーニー「基礎」セクションの一部。レッスン 60/72。
PARTITION BY と ORDER BY を組み合わせることもできます。たとえば、次の table1 を考えてみましょう。
| id | type |
| 132 | t1 |
| 52 | t2 |
| 92 | t1 |
| 154 | t3 |
| 198 | t1 |
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1これにより、各 type の id に基づいて行に昇順で番号が付けられます。
| id | type | row_num |
| 132 | t1 | 2 |
| 52 | t2 | 1 |
| 92 | t1 | 1 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
ここで、id 132 は row_num 2 です。これは、(すべての t1 型の行の中で)92 より大きく、198 より小さいためです。
チャレンジ
簡単利用可能なテーブルとカラム:
doors:id、publication_yeardoors_specs:id、country、color
各国でのドアの色の順序を、出版年順に分析するSQLクエリを書いてください。各ドアについて、次の項目を表示します:
- 国
- 色
- 出版年
- 出版年に基づく、各国における色の順序を表す番号。このカラムを
color_sequence_numberと呼びます
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
11ウィンドウ関数 パート1
ROW_NUMBER関数ORDER BY基準PARTITION BY基準PARTITIONとORDERLEADとLAG関数復習 - LEADとLAG復習 - 図復習 - ボックス自分で練習してみよう: SQLプレイグラウンド