Critère PARTITION BY
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 séparément les lignes de chaque groupe
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érote chaque type au sein de celui-ci :
| id | type | row_num |
| 132 | t1 | 1 |
| 52 | t2 | 1 |
| 92 | t1 | 1 |
| 154 | t3 | 1 |
| 198 | t1 | 3 |
id 92 a row_num 1, car il s’agit du plus petit id dans type t1.
Remarque : ROW_NUMBER() nécessite une clause ORDER BY au sein de OVER() afin de déterminer comment les lignes doivent être numérotées dans chaque partition.
Nous pouvons même spécifier plusieurs colonnes dans PARTITION BY :
ROW_NUMBER() OVER (PARTITION BY type, hue ORDER BY id)Défi
FacileTables et colonnes disponibles :
doors:id,publication_yeardoors_specs:id,country,color
Une usine fabrique des portes. Elle doit numéroter les portes pour chaque combinaison de country et de color dont le publication_year est 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 de id.
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
1Introduction
IntroductionQu’est-ce qu’une base de donnéesConcepts des bases de donnéesValeurs uniques4D’autres mots-clés
Le mot-clé INLe mot-clé BETWEENLe mot-clé LIKELe mot-clé ASRécapitulatif - Modèles de téléphones portables2Conditions
Bases des conditionsLe mot-clé ANDLe mot-clé ORLe mot-clé NOTCombinaison de plusieurs conditionsParenthèsesBooléens5Opérations arithmétiques
Opérateurs mathématiquesColonnes mathématiquesL’opération moduloLa fonction ROUND()8Statistiques
Agrégats intégrés, partie 1Agrégats intégrés, partie 2Regroupement, partie 1Regroupement, partie 2Sous-requêtes, partie 1Sous-requêtes, partie 2Récapitulatif - Boutique Total GainRécapitulatif - Boutique de scootersRécapitulatif - Café11Fonctions de fenêtre, partie 1
Fonction ROW_NUMBERCritère ORDER BYCritère PARTITION BYPARTITION et ORDERFonctions LEAD et LAGRécapitulatif - LEAD et LAGRécapitulatif - ImagesRécapitulatif - Boîtes3Format de retour spécifique
Valeurs NULLTrier les résultats, partie 1Trier les résultats, partie 2Récapitulatif - Entreprise de cybersécuritéLimiter le nombre d’enregistrementsRécapitulatif - Usine de véhicules6Défis d’introduction
Récapitulatif - Élection parlementaireRécapitulatif - Arrestation criminelle par la policeRécapitulatif - Récipient de boisson au barRécapitulatif - Ingénieur de nouvelles colonnes9Tables multiples
Jointure de base, partie 1Jointure de base, partie 2Récapitulatif - JointureAuto-jointureRécapitulatif - Auto-jointureUnionSimplifier les requêtes, mot-clé WITHRécapitulatif - Requêtes WITHRécapitulatif - Entrepreneur immobilier12Fonctions de fenêtre – partie 2
Fonctions RANK & DENSE_RANKRécapitulatif – RANK & DENSE_RANKFonction NTILEFonctions d’agrégationCritère ROWS & RANGEEntraînez-vous par vous-même : Playground SQL