Menu
Coddy logo textTech

PARTITION & ORDER

Fait partie de la section Les fondamentaux du Journey SQL de Coddy — leçon 60 sur 72.

Nous pouvons également combiner PARTITION BY avec ORDER BY. Par exemple, considérez le table1 suivant :

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

Cela numérotera les lignes par ordre croissant selon l'id de chaque type :

idtyperow_num
132t12
52t21
92t11
154t31
198t13

Maintenant, l’id 132 a row_num 2 car il est supérieur à 92 et inférieur à 198 (parmi toutes les lignes de type t1).

challenge icon

Défi

Facile

Tables 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>

Écrivez une requête SQL pour analyser la séquence des couleurs de portes au sein de chaque pays, ordonnée par année de publication. Pour chaque spécification de porte, affichez :

  • Le pays
  • La couleur
  • L'année de publication
  • Un nombre représentant l'ordre des couleurs au sein de chaque pays en fonction de l'année de publication. Appelez cette colonne color_sequence_number

Aide-mémoire

Vous pouvez combiner PARTITION BY avec ORDER BY pour numéroter les lignes dans chaque partition dans un ordre spécifique :

SELECT id, type, ROW_NUMBER() OVER (PARTITION BY type ORDER BY id) as row_num
FROM table1

Cela numérote les lignes par ordre croissant de id au sein de chaque groupe type. Chaque partition recommence la numérotation à partir de 1.

Essayez vous-même

quiz iconTestez-vous

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