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これにより、各タイプの 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 になります。これは 92 より大きく 198 より小さい(すべての t1 タイプの行のうち)からです。
チャレンジ
簡単利用可能なテーブルと列:
<strong>doors</strong>:<strong>id</strong>,<strong>publication_year</strong><strong>doors_specs</strong>:<strong>id</strong>,<strong>country</strong>,<strong>color</strong>
各国におけるドアの色の順序を出版年順に分析するための SQL クエリを記述してください。各ドアスペースについて、以下を表示:
- 国
- 色
- 出版年
- 各国ごとの出版年に基づく色の順序を示す番号。この列を
color_sequence_numberと命名してください。
チートシート
PARTITION BY を ORDER BY と組み合わせることで、各パーティション内の行を特定の順序で番号付けできます:
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1これにより、各 type グループ内で id の昇順で行が番号付けされます。各パーティションは番号付けを 1 から再開します。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function8Statistics
Built-In Aggregate Part 1Built-In Aggregate Part 2Grouping Part 1Grouping Part 2Subqueries Part 1Subqueries Part 2Recap - Total Gain ShopRecap - Scooter ShopRecap - Coffee Shop11Window Functions part 1
ROW_NUMBER functionORDER BY criterionPARTITION BY criterionPARTITION & ORDERLEAD & LAG FunctionsRecap - LEAD & LAGRecap - PicturesRecap - Boxes3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns