PARTITION BY criterion
Fait partie de la section Les fondamentaux du Journey SQL de Coddy — leçon 59 sur 72.
Une autre option pour la clause OVER () est PARTITION BY
Elle nous permet de numéroter les lignes pour chaque groupe séparément
Par exemple :
| 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 table1Cela générera une colonne qui numérotera chaque type au sein de lui-même :
| id | type | row_num |
| 132 | t1 | 1 |
| 52 | t2 | 1 |
| 92 | t1 | 2 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
id 92 a row_num 2 car il s'agit de la deuxième ligne de type t1 lorsqu'on ordonne par id.
Remarque : ROW_NUMBER() nécessite une clause ORDER BY au sein de OVER() pour déterminer comment numéroter les lignes au sein de chaque partition.
Nous pouvons même spécifier plusieurs colonnes dans le PARTITION BY :
ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)Défi
FacileTables et colonnes disponibles :
<strong>doors</strong>:<strong>id</strong>,<strong>publication_year</strong><strong>doors_specs</strong>:<strong>id</strong>,<strong>country</strong>,<strong>color</strong>
Une usine fabrique des portes. Elle doit numéroter les portes pour chaque combinaison de country et color qui ont un publication_year inférieur à 2000. Nommez cette colonne row_num.
Les portes doivent être numérotées au sein de chaque groupe par ordre croissant de leur id. Les portes sans spécifications doivent être ignorées. Triez le résultat final par ordre croissant du id.
Aide-mémoire
Utilisez PARTITION BY dans la OVER() clause pour numéroter les lignes au sein des groupes :
SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type) as row_num
FROM table1Vous pouvez partitionner par plusieurs colonnes :
ROW_NUMBER() OVER (PARTITION BY type, hue)Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
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