1.分组查询
1.1分组函数
1.定义:分组函数作用于一组数据,并对一组数据返回一个值。
2.常用的分组函数:
.AVG(求平均值)
.SUM(求和)
.MIN(求最小值)
.MAN()
.COUNT
.WM_CONCAT(字符串拼加)
例如:
1.2 分组函数与空值(null)
在分组函数中使用NVL函数,可以使分组函数无法忽略空值。
例如:
1.3 group by子句
1.在select列表中为包含在组函数的列都应该包含在group by子句中
2.包含在group by 子句中的列不必包含在select列表中
3.group by 后面不允许使用列的别名
4.根据多个列分组
根据多个列分组,即先根据group by后面的第一列进行分组,然后在根据后面的列依次分组。
5.非法使用组函数
所用包含于select列表中,而未包含于组函数中的列,都必须包含于group by子句中
1.4 having子句过滤分组
1.用having子句来限定分组:1.行被分组了
2.使用了分组函数
3.符合having子句条件的组被显示出来
2.where子句和having子句的区别:1.where子句中不能使用组函数
2.having子句中可以使用组函数
3.在where和having子句可以通用的情况下,从SQL优化的角度来看,尽量使用where子句
1.5 在分组查询中使用order by子句
使用order by 进行排序时可以按照列、别名、表达式、序号进行排序。
例如: