- GROUP BY 子句用来根据指定的字段对结果集(选取的数据)进行分组,如果某些记录的指定字段具有相同的值,那么它们将被合并为一条数据。通俗地理解,GROUP BY 子句将根据指定的字段合并数据行
语法
SELECT select_expr [, select_expr] ...
FROM table_references [PARTITION partition_list]
WHERE where_condition
GROUP BY {col_name | expr | position}, ... [WITH ROLLUP];
参数 |
说明 |
||||||||||
select_expr |
包含选择列表,该列表指示要检索的列。指定列或表达式,或者可以使用 * 必须至少有一个select_expr |
||||||||||
[FROM table_references [PARTITION partition_name,[partition_name] … ] ] |
指定语句作用到的数据表名
|
||||||||||
[WHERE where_condition] |
WHERE子句(如果给定)指示行必须满足的条件才能被选择。 如果没有WHERE子句,语句将选择所有行
|
||||||||||
GROUP BY {col_name | expr | position}, ... [WITH ROLLUP] |
使用GROUPBY时对任意列进行排序,可以使用列名、列别名或列位置在ORDER BY和GROUP BY子句中引用为输出选择的列。列位置为整数,以1开头:
|
示例
mysql> SELECT country, SUM(visitors) AS total
-> FROM website
-> GROUP BY country;
运行结果如下:
+----------+-------------------------+
| country | total |
+----------+-------------------------+
| CN | 9018.869999885559 |
| RU | 1797.8200073242188 |
| US | 37282.50001525879 |
+----------+-------------------------+