Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Fonctions de Fenêtre | Quelques Sujets Supplémentaires
Techniques Avancées en SQL
course content

Contenu du cours

Techniques Avancées en SQL

Techniques Avancées en SQL

1. Acid
2. Optimisation des Requêtes.Indexes
3. Quelques Sujets Supplémentaires

book
Fonctions de Fenêtre

Les fonctions de fenêtre sont une catégorie de fonctions SQL qui effectuent des calculs sur un ensemble de lignes liées à la ligne actuelle dans une fenêtre ou une partition définie.
Elles sont utilisées pour effectuer des calculs et des analyses sur un sous-ensemble de lignes sans réduire l'ensemble des résultats, contrairement aux fonctions d'agrégation qui réduisent généralement le nombre de lignes renvoyées par une requête.

Explication

Supposons que nous ayons la table Sales suivante :

Si notre objectif est de calculer le revenu total pour chaque produit spécifique et de l'afficher dans une colonne supplémentaire au sein du tableau principal plutôt que de générer un nouveau tableau groupé, le résultat pourrait apparaître comme suit :

Mais comment pouvons-nous le faire ?
Utiliser GROUP BY n'est pas adapté pour cette tâche car cette clause réduit le nombre de lignes en les regroupant selon des critères spécifiés, ce qui entraîne uniquement le retour des identifiants et de leurs valeurs de somme correspondantes.

C'est pourquoi les fonctions de fenêtre sont essentielles pour résoudre ce problème.

Mise en œuvre

Nous pouvons obtenir le résultat requis en utilisant la requête suivante :

1234567
SELECT sales_id, product_id, sales_date, amount, SUM(amount) OVER (PARTITION BY product_id) AS Total_Revenue_Per_Product FROM Sales;
copy

Une syntaxe générale pour créer une fonction de fenêtre peut être décrite comme suit :

  • SELECT : Indique qu'une requête est sur le point de commencer ;
  • aggregation_func() : La fonction d'agrégation (par exemple, SUM, AVG, COUNT) qui effectue un calcul sur un ensemble de lignes défini par la fenêtre ;
  • OVER : Mot-clé qui introduit la fonction de fenêtre ;
  • PARTITION BY : Divise l'ensemble des résultats en partitions basées sur les valeurs de la ou des colonnes spécifiées. La fonction de fenêtre opère séparément sur chaque partition ;
    • partition_column : La colonne utilisée pour partitionner l'ensemble des résultats.
  • ORDER BY : Spécifie l'ordre des lignes au sein de chaque partition ;
    • order_column : La colonne utilisée pour ordonner les lignes au sein de chaque partition.
  • FROM : Indique la table source à partir de laquelle les données sont récupérées ;
    • table_name : Le nom de la table à partir de laquelle les données sont sélectionnées.
Quelle clause est utilisée pour définir le partitionnement d'une fonction de fenêtre ?

Quelle clause est utilisée pour définir le partitionnement d'une fonction de fenêtre ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3
We're sorry to hear that something went wrong. What happened?
some-alt