Maison > base de données > tutoriel mysql > PARTITION BY et GROUP BY en SQL : quelle est la différence ?

PARTITION BY et GROUP BY en SQL : quelle est la différence ?

DDD
Libérer: 2025-01-06 06:30:39
original
499 Les gens l'ont consulté

PARTITION BY vs. GROUP BY in SQL: What's the Difference?

Comprendre les différences entre PARTITION BY et GROUP BY en SQL

Le partitionnement et le regroupement sont des opérations cruciales en SQL pour l'agrégation et le traitement des données. Bien que PARTITION BY et GROUP BY impliquent de diviser et d'agréger des données, leurs fonctionnalités et applications diffèrent considérablement.

PARTITION BY : partitionnement pour les fonctions de fenêtre

PARTITION BY est principalement utilisé en conjonction avec des fonctions de fenêtre, telles que ROW_NUMBER(), qui effectuent des calculs basés sur une partition définie. Il divise les données en groupes distincts basés sur des colonnes spécifiées, appelées clés de partition. Chaque partition fonctionne indépendamment, permettant aux fonctions de fenêtre de calculer des valeurs relatives à leurs partitions respectives.

Par exemple, la requête suivante utilise PARTITION BY pour attribuer des numéros séquentiels aux lignes de chaque ID client :

SELECT ROW_NUMBER() OVER (PARTITION BY customerId ORDER BY orderId) AS OrderNumberForThisCustomer
FROM Orders;
Copier après la connexion

GROUP BY : Agréger des données en groupes

GROUP BY, quant à lui, est conçu pour agréger les données sur plusieurs lignes en fonction de valeurs communes. Il regroupe les lignes avec des valeurs correspondantes dans des colonnes spécifiées, appelées clés de regroupement. La fonction d'agrégation, telle que COUNT(*) ou SUM(), est ensuite appliquée à chaque groupe.

La requête suivante utilise GROUP BY pour calculer le nombre total de commandes pour chaque client :

SELECT customerId, COUNT(*) AS orderCount
FROM Orders
GROUP BY customerId;
Copier après la connexion

Différences clés

Les principales différences entre PARTITION BY et GROUP BY peuvent être résumées comme suit suit :

  • Objectif : PARTITION BY partitionne les données pour les fonctions de fenêtre, tandis que GROUP BY agrège les données en groupes.
  • Effet sur le résultat : PARTITION BY ne réduit pas le nombre de lignes renvoyées, tandis que GROUP BY réduit généralement le nombre de lignes en regroupant et agrégation.
  • Fonctions de fenêtre : PARTITION BY est compatible avec les fonctions de fenêtre, permettant des calculs au sein des partitions. GROUP BY ne prend pas en charge les fonctions de fenêtre.
  • Flexibilité : PARTITION BY permet un partitionnement flexible basé sur plusieurs colonnes, tandis que GROUP BY est limité au regroupement basé sur les colonnes spécifiées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal