Exercice 31 / 60

Fonctions fenêtre - ROW_NUMBER

ConsigneNumérote les etudiants à l'intérieur de chaque ville, du meilleur au moins bon, avec une fonction fenêtre. Nomme cette colonne rang_ville. Colonnes : nom, ville, note, rang_ville.

📖 Cours

Les fonctions fenêtre (window functions) calculent une valeur sur un groupe de lignes sans les fusionner (contrairement a group BY). row_number() numérote les lignes 1, 2, 3... sans jamais donner deux fois le même numéro À L'intérieur D'UN même groupe. Avec partition BY, la numérotation repart à 1 dans chaque groupe : plusieurs lignes portent alors le numéro 1, une par groupe. Syntaxe : row_number() over (partition BY col order BY col2)

PARTITION BY découpe en groupes (la numérotation repart a 1)ORDER BY définit l'ordre de numérotation
PARTITION BY découpe en seaux sans fusionner les lignes, et la numérotation de ROW_NUMBER repart à 1 dans chacun
PARTITION BY découpe en seaux sans fusionner les lignes, et la numérotation de ROW_NUMBER repart à 1 dans chacun

Exemple (table produits) :

SELECT nom, categorie, prix, ROW_NUMBER() OVER (PARTITION BY categorie ORDER BY prix DESC) AS rang_catFROM produits;-> classe les produits a l'intérieur de chaque categorie

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →