1.分组查询
分组函数作用一组函数,并对一组数据返回一个值。
1..常用的分组函数AVG(平均值).SUM(求和).MIN(最小).MAX(最大值).COUNT.(求个数)..WM_CONCAT(行转列)
select(*) from emp
2.distinct关键字去除重复记录
select count (distinct deptno) from emp
3.分组函数会自动忽略空值,只会统计非空个数
4.NVL函数使得无法自用忽略空值
select count (*),count(nvl(comm,o)) from emp
2.分组数据
1.group by 子句将表中数据分成若干组
在select列表中所有未包含在组函数的列都应该包含在group by子句中
select a,b,c 组函数(x)from table group by a,b,c;
包含在GROUP BY 子句的列不必包含在select列表中
多个列的分组可以通过ORDER BY
select a,b,c 组函数(x)from table group by a,b,c order by a;
HAVING语句用于过滤分组语句
where和having区别
不能再where子句中使用组函数,可以在having子句中使用组函数
having是先分组,后过滤,where先过滤在分组,从sql语句来说where效率高些。
分组函数的嵌套,如下所示
select max(avg(sal)) from emp group by deptno;