Oracle 多行函数,group by增强

多行函数:

多行函数(组函数,分组函数)
avg(),count(),max(),min(),sum()
多行函数会自动滤空(忽略值为null的记录。例如:avg()函数会先忽略掉值为null的记录)

select deptno,job,sum(sal) from emp group by deptno,job;  --查询的项,必须出现在group by子句中;group by子句中的项可以不出现在select查询项中。
group by与where的区别:多行函数必须放在group by子句中。  sql优化:推荐使用where

--group by子句增强 
group by rollup(a,b)相当于: group by a,b + group by a  +  没有group by 的三种查询结果合在一起。
select deptno,job,sum(sal) from emp group by rollup(deptno,job);   

break on deptno skip 2;    --查询结果中,相同的部门号只显示一次;skip 2 表示不同的部门号的记录之间空两行
break on null;          --清除上面break on的设置

猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/82349135