Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Clause GROUP BY
La clause GROUP BY identifie les colonnes de regroupement de la requête. Les colonnes de regroupement doivent être déclarées lorsque la requête calcule les regroupements avec des fonctions standard telles que SUM, AVG et COUNT. Pour plus d’informations, consultez Fonctions d’agrégation.
Syntaxe
GROUP BY group_by_clause [, ...] group_by_clause := { expr | GROUPING SETS ( () | group_by_clause [, ...] ) | ROLLUP ( expr [, ...] ) | CUBE ( expr [, ...] ) }
Paramètres
- expr
-
La liste des colonnes ou des expressions doit correspondre à la liste des expressions non agrégées de la liste de sélection de la requête. Par exemple, imaginons la requête simple suivante.
select listid, eventid, sum(pricepaid) as revenue, count(qtysold) as numtix from sales group by listid, eventid order by 3, 4, 2, 1 limit 5; listid | eventid | revenue | numtix -------+---------+---------+-------- 89397 | 47 | 20.00 | 1 106590 | 76 | 20.00 | 1 124683 | 393 | 20.00 | 1 103037 | 403 | 20.00 | 1 147685 | 429 | 20.00 | 1 (5 rows)
Dans cette requête, la liste de sélection se compose de deux expressions d’agrégation. La première utilise la fonction SUM et la seconde la fonction COUNT. Les deux autres colonnes, LISTID et EVENTID, doivent être déclarées en tant que colonnes de regroupement.
Les expressions de la clause GROUP BY peuvent également faire référence à la liste de sélection en utilisant des nombres ordinaux. Par exemple, l’exemple précédent peut être abrégé comme suit.
select listid, eventid, sum(pricepaid) as revenue, count(qtysold) as numtix from sales group by 1,2 order by 3, 4, 2, 1 limit 5; listid | eventid | revenue | numtix -------+---------+---------+-------- 89397 | 47 | 20.00 | 1 106590 | 76 | 20.00 | 1 124683 | 393 | 20.00 | 1 103037 | 403 | 20.00 | 1 147685 | 429 | 20.00 | 1 (5 rows)
- GROUPING SETS/ROLLUP/CUBE
-
Vous pouvez utiliser les extensions d’agrégation GROUPING SETS, ROLLUP et CUBE pour effectuer plusieurs opérations GROUP BY dans une seule instruction. Pour plus d’informations sur les extensions d’agrégation et les fonctions associées, consultez Extensions de regroupement.