ROW_NUMBER function
Fait partie de la section Les fondamentaux du Journey SQL de Coddy. Leçon 57 sur 72.
Les fonctions window effectuent des calculs sur un ensemble de lignes de tableau liées à la ligne actuelle. Contrairement aux fonctions d'agrégation ordinaires, les fonctions window ne réduisent pas les résultats en une seule ligne.
Elles sont particulièrement utiles lorsque vous devez :
- Calculer des cumuls courants
- Classer des éléments au sein de groupes
- Comparer les lignes actuelles avec les lignes précédentes/suivantes
- Analyser des tendances sur des périodes données
Par exemple, voici quelques exemples concrets de cas d'utilisation des fonctions de fenêtrage (window functions) :
- Sales Analysis
- Calculez les ventes cumulées jusqu'à chaque année (1995, 1997, 1999)
- Trouvez les produits les plus vendus pour chaque trimestre
- Statistiques sportives
- Suivre le nombre de médailles olympiques à travers différentes années
- Identifier les athlètes en tête dans chaque période de compétition (2000, 2004, 2008)
ROW_NUMBER() est l'une des fonctions de fenêtre les plus simples. Elle attribue un numéro séquentiel unique à chaque ligne dans le jeu de résultats. Voici comment l'utiliser :
SELECT column1, column2,
ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;Il est obligatoire d'utiliser la clause OVER avec ROW_NUMBER() : ROW_NUMBER() OVER ()
Par exemple :
SELECT product_name, sale_date,
ROW_NUMBER() OVER () as row_num
FROM sales;Cela ajoute une colonne row_num qui compte de 1 jusqu'au nombre total de lignes.
Remarque : La clause OVER peut contenir des instructions de tri et de partitionnement pour contrôler le fonctionnement de la numérotation.
Défi
FacileTables et colonnes disponibles :
<strong>liquids</strong>:<strong>id</strong>,<strong>density</strong>
Récupérez tous les liquides avec une densité supérieure à 5.677.
Numérotez le résultat (utilisez la fonction ROW_NUMBER()) et nommez cette colonne row_num
Essayez vous-même
-- Numéroter chaque ligne du résultat filtré en utilisant une fonction de fenêtre
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____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 columnsEntraînez-vous par vous-même : Playground SQL