A GROUP BY
statement in SQL specifies that a SQL SELECT
statement partitions result rows into groups, based on their values in one or several columns. Typically, grouping is used to apply some sort of aggregate function for each group.[1][2]
The result of a query using a GROUP BY
statement contains one row for each group. This implies constraints on the columns that can appear in the associated SELECT
clause. As a general rule, the SELECT
clause may only contain columns with a unique value per group. This includes columns that appear in the GROUP BY
clause as well as aggregates resulting in one value per group.[3]