Chapitre 1 / 9
Classer avec ROW_NUMBER, RANK, DENSE_RANK
9 leçons dans ce chapitre.
Principe général : la différence avec GROUP BY
réduit vos lignes : N lignes deviennent un nombre de lignes égal au nombre de groupes distincts. Une fonction de fenêtrage () fait…
Voir les détails du chapitre
réduit vos lignes : N lignes deviennent un nombre de lignes égal au nombre de groupes distincts. Une fonction de fenêtrage () fait l'inverse : elle calcule une valeur agrégée pour chaque ligne, sans en supprimer aucune. → 2 lignes (une par équipe : ventes, support) — les 6 lignes individuelles ont disparu. → 6 lignes (toutes les lignes d'origine, chacune enrichie d'une colonne tailleequipe). À ret…
ROW_NUMBER()
attribue un numéro de ligne unique, croissant, selon l'ordre indiqué. Trié par ancienneté décroissante (le plus ancien en premier)…
Voir les détails du chapitre
attribue un numéro de ligne unique, croissant, selon l'ordre indiqué. Trié par ancienneté décroissante (le plus ancien en premier), avec l'id comme départage en cas d'égalité : David (7 ans, id 4) et Farid (7 ans, id 6) sont exaequo sur l'ancienneté, mais ROWNUMBER() leur attribue quand même deux rangs différents et uniques (1 et 2, départagés par id) — jamais le même numéro deux fois. À retenir :…
ORDER BY à l'intérieur d'une fonction de fenêtrage
Le placé à l'intérieur de détermine le calcul de la fonction de fenêtrage (l'ordre dans lequel les rangs sont attribués) — ce n'es…
Voir les détails du chapitre
Le placé à l'intérieur de détermine le calcul de la fonction de fenêtrage (l'ordre dans lequel les rangs sont attribués) — ce n'est pas le même que celui, optionnel, placé à la toute fin d'une requête pour trier l'affichage des résultats. Sans ORDER BY final sur cette requête, les lignes du résultat peuvent s'afficher dans n'importe quel ordre (généralement l'ordre naturel de la table) — seule la…
PARTITION BY : appliquer par groupe
, ajouté dans OVER(...), fait recommencer le calcul à zéro pour chaque valeur distincte de cette colonne — comme un GROUP BY qui n…
PARTITION BY sur plusieurs colonnes
accepte plusieurs colonnes séparées par une virgule : le calcul repart alors à zéro pour chaque combinaison distincte de ces colon…
RANK() et DENSE_RANK() : gérer les ex-aequo
et gèrent les exaequo différemment de ROWNUMBER() : deux lignes à égalité reçoivent le même rang. Dans l'équipe support, David et…
Comparer ROW_NUMBER, RANK et DENSE_RANK côte à côte
Calculer les trois fonctions dans une même requête rend leurs différences immédiatement visibles. Sur l'équipe support (David 7 an…
NTILE() : répartir en groupes égaux
répartit les lignes en groupes de taille aussi égale que possible, numérotés de 1 à n selon l'ordre indiqué — utile pour des quart…
Cas pratique : combiner plusieurs classements
Ce cas pratique combine , et — les notions de ce chapitre. Étape par étape : 1. Dans l'équipe ventes : Amara (rangequipe 1, rangra…
Quiz de chapitre
6 questions transversales sur ce chapitre.
Progression du chapitre
0/9 terminées
Accès complet
Les 3 premières leçons de ce module sont gratuites.
8 000 XOF / 12,20 € / 13,29 $
Débloquez les 78 leçons restantes de ce module