- 博客(7)
- 收藏
- 关注
原创 group by扩展函数之group_id
/*group_id函数:无参数,由于扩展的group BY 分组允许多种复杂操作,如部分分组、重复列分组、连续分组等, 有时为了实现复杂的报表功能,会有重复分组统计出现,而group_id就可以区分重复分组结果,第一次出现为0, 以后每次出现增1,group_id在select中出现的意义不大,常在having中使用达到过滤重复统计的目的 之前grouping SETS中有一个例子中就有重
2014-08-31 20:52:12 682
原创 group by扩展函数之grouping
/*GROUPING函数:rollup和cube函数在查询结果中,有些行的列值会存在null,一般意味着是对此列的小计或者合计, 但是null也有可能是原始数据存在的null,grouping函数专门处理扩展group BY 分组结果中null的问题 GROUPING只接受一个参数,且此参数来自rollup\CUBE\GROUPING SETS中的列,grouping函数对于是小计或者合计的列
2014-08-31 20:48:55 413
原创 group by扩展函数之grouping_id
/*grouping_id函数:用来过滤分组级别和排序结果的,因为grouping过滤比较麻烦 该函数接受rollup,CUBE,GROUPING sets中的列,按从左到右的顺序计算,如果此列是分组列则为0,如果是对此列的小计或合计则为1, 然后根基二进制序列转成十进制数*/ SELECT a.dname,b.mgr,b.job,SUM(sal) sum_sal--,grouping_id
2014-08-31 20:48:07 486
原创 group by 扩展函数之GROUPING SETS
/*GROUPING SETS(a,b,c) = GROUP BY a UNION GROUP BY b UNION GROUP BY c 即没有了 GROUP BY NULL*/ SELECT to_char(b.hiredate,'yyyy') hire_year,a.dname,b.job,SUM(sal) sum_sal FROM dept a,emp b WHERE a.dept
2014-08-31 20:41:54 681
原创 group by扩展函数之cube
/*cube比rollup比较,ROLLUP是按列的顺序从右到左递减分组统计,而cube是各种可能性的分组*/ SELECT a.dname,b.job,SUM(b.sal) sum_sal FROM dept a,emp b WHERE a.deptno = b.deptno GROUP BY CUBE(a.dname,b.job); -------------------- SELE
2014-08-31 20:37:38 473
原创 group by 扩展函数之rollup
/*功能:rollup后面指定的列以逗号隔开,计算结果与后面列的顺序有关, 因为rollup分组过程具有方向性,先计算标准分组,然后列从右到左递减计算更高一级的小计,一直到列全部被选完,最后计算合计*/ SELECT a.dname,b.job,SUM(b.sal) sum_sal FROM dept a,emp b WHERE a.deptno = b.deptno GROUP BY
2014-08-31 20:35:02 1494
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人