完整攻略 - SQL GROUP BY 语句
SQL GROUP BY 语句用于将结果按照一个或多个列进行分组,然后对每组进行聚合操作,比如 COUNT、SUM、AVG 等。GROUP BY 语句的基本语法如下所示:
SELECT column1, column2, ..., aggregate_function(column)
FROM table_name
WHERE condition
GROUP BY column1, column2, ...
HAVING condition
ORDER BY column1, column2, ... ASC|DESC;
其中,column1, column2, ... 是需要计算的列,可以是多个列;aggregate_function(column) 是聚合函数,比如 COUNT、SUM、AVG 等;table_name 是要查询的表;condition 是筛选条件;GROUP BY column1, column2, ... 列出了分组依据的列;HAVING condition 是分组筛选条件,只保留符合条件的分组;ORDER BY column1, column2, ... ASC|DESC 列出了排序规则。
一. 聚合函数
SQL GROUP BY 语句中需要使用到聚合函数来进行计算,下面是常用的聚合函数。
-
COUNT(column)
统计某一列中的行数,如果括号内写的是 *,则表示统计所有行数。 -
SUM(column)
计算某一列的总和。 -
AVG(column)
计算某一列的平均值。 -
MAX(column)
计算某一列的最大值。 -
MIN(column)
计算某一列的最小值。
二. 示例
我们以学生表(Student)为例来演示 SQL GROUP BY 语句的使用。
- 统计每个班级的人数及平均年龄
SELECT Class, COUNT(*) AS Count_Num, AVG(Age) AS Average_Age
FROM Student
GROUP BY Class;
分组依据是 Class 列,统计了每个班级的人数 Count_Num 和平均年龄 Average_Age。
- 统计每个班级男女人数及平均年龄
SELECT Class, Gender, COUNT(*) AS Count_Num, AVG(Age) AS Average_Age
FROM Student
GROUP BY Class, Gender;
分组依据是 Class 和 Gender 两列,统计了每个班级男女人数及平均年龄。
以上就是 SQL GROUP BY 语句的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL – GROUP BY 语句 - Python技术站