分组函数
功能用作统计使用,又称为聚合函数或者统计函数或者组函数
分类:
sum
求和 , avg
平均值 , max
最大值, min
最小值 , count
计算个数
sum
avg
一般用于处理数值型 会忽略null 值
max
min
count
可以处理任何类型 会忽略null 值
- 简单的使用
SELECT SUM(c1) FROM TABLE
SELECT ROUNT(AVG(c1),2) FROM TABLE // ROUNT(,2) 保留两位小数
SELECT MAX(c1) FROM TABLE
SELECT MIN(c1) FROM TABLE
SELECT COUNT(c1) FROM TABLE
- 搭配 distinct 搭配
SELECT COUNT(DISTINCT c1) FROM TABLE
- 分组查询
SELECT 分组函数,列
FROM 表
WHERE 筛选条件
GROUP BY
① 根据每个部门的员工个数
SELECT COUNT(*) , department_id FROM employee GROUP BY department_id
② 根据①的结果进行筛选,查询哪个部门的员工个数 > 2
SELECT COUNT(*), department_id FROM employee GROUP BY department_id HAVING COUNT(*) > 2;
注意: 查询列表必须特殊,要求是分组函数 和 GROUP BY 后出现的字段
特点:分组查询中的筛选条件分为两类
数据源 | 位置 | 关键字 | |
---|---|---|---|
分组前筛选 | 原始表 | Group By 子句的前面 | where |
分组后筛选 | 分组后的结果集 | Group By 子句的后面 | having |
1.分组函数做条件肯定时放在 having 子句中
2.能使用分组前就使用分组前筛选
3.GROUP BY 支持单个字段或者多个字段分组,多个字段使用逗号隔开,没有顺序要求。表达式或者函数
4.也可以添加排序,排序放在分组查询的最后
按多个字段分组
SELECT AVG(c1), c2 , c3
FROM TABLE
GROUP BY c2,c3;
添加排序
SELECT AVG(c1), c2 , c3,salary
FROM TABLE
GROUP BY c2,c3;
ORDER BY salary DESC