SQL PARTITION BY (Français)

Résumé: dans ce didacticiel, vous apprendrez à utiliser le SQL PARTITION BY pour changer la façon dont la fonction window calcule le résultat.

Présentation de la clause SQL PARTITION BY

La clause PARTITION BY est un sous-paragraphe de la clause OVER. La clause PARTITION BY divise le jeu de résultats dune requête en partitions. La fonction de fenêtre est opérée sur chaque partition séparément et recalculée pour chaque partition.

Ce qui suit montre la syntaxe de la clause PARTITION BY:

Vous pouvez spécifier une ou plusieurs colonnes ou expressions pour partitionner le jeu de résultats. Les expression1, expression1, etc., ne peuvent faire référence quaux colonnes dérivées par FROM clause. Ils ne peuvent pas faire référence à des expressions ou alias dans la liste de sélection.

Les expressions de la clause PARTITION BY peuvent être des expressions de colonne, une sous-requête scalaire ou une fonction scalaire. Notez quune sous-requête scalaire et une fonction scalaire renvoient toujours une seule valeur.

Si vous omettez la clause PARTITION BY, lensemble de résultats est traité comme une seule partition.

PARTITION BY vs GROUP BY

La clause GROUP BY est souvent utilisée en conjonction avec une fonction dagrégation telle que SUM() et AVG(). La clause GROUP BY réduit le nombre de lignes renvoyées en les cumulant et en calculant les sommes ou les moyennes pour chaque groupe.

Par exemple, linstruction suivante renvoie la moyenne salaire des employés par service:

Limage suivante montre le résultat:

La clause PARTITION BY divise le jeu de résultats en partitions et modifie la façon dont la fonction de fenêtre est calculée. La clause PARTITION BY ne réduit pas le nombre de lignes renvoyées.

Linstruction suivante renvoie le salaire de lemployé ainsi que le salaire moyen du service de lemployé:

Voici la sortie partielle:

En termes simples, la clause GROUP BY est agrégée tandis que la clause PARTITION BY est analytique.

Dans ce tutoriel, vous avez découvert la clause SQL PARTITION BY qui modifie la façon dont le résultat de la fonction de fenêtre est calculé.

  • Ce tutoriel vous a-t-il été utile?
  • OuiNon

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *