常见分组函数
- 可以与
distinct
配合使用 - 以下函数运算时均忽略
null
sum( column ) | 求和,仅支持数值类型 |
avg( column ) | 平均,仅支持数值类型 |
max( column ) | 最大,支持数值、字符等可比较类型 |
min( column ) | 最小,支持数值、字符等可比较类型 |
count( column ) | 计数,仅计算非null单元,支持所有类型 |
注意:与分组函数一同查询的字段要求为
group by
(见下文)操作后的字段(保持表格规整)
示例:
1 | #利用 count、distinct 统计工种数目 |
-
count()
函数使用
*
可统计表中所有行的数目,如1
2
3#统计 Tablename 表中所有有效行(不全为null)
select count(*) from Tablename;
select count(const) from Tablename;#相当于在非null行前添加'1'的元素,并计数注意:count(*)的效率在一些引擎下效率比count(1)高,一般使用前者
分组查询
利用相同元素对数据进行分组管理,使用group by
关键字实现。
基础语法
1 | select column1,ground_func(column2) |
注意:查询列表(
select
后的列)中的元素必须是分组函数或group by
后的字段
示例:
1 | #查询各部门的,邮箱包含a字符的员工的平均工资 |
分组查询后进行筛选,使用链接关键字having
:
1 | #查询各人数大于2的部门人数 |
group by
关键字后可以接用 函数、别名等。分组后支持排序。多字段分组,只有多个字段同时相同,才会归并到同一个组。