首页 > 数据库 > Oracle > Oracle的分析函数
select id,area,stu_type,sum(score) score
from students
group by rollup(id,area,stu_type)
order by id,area,stu_type;
//--------理解rollup
select a,
b, c, sum( d )
from t
group by rollup(a, b, c);
等效于
select * from (
select a, b, c, sum( d ) from t group by a, b, c
union all
select a, b, null, sum( d ) from t group by a, b
union all
select a, null, null, sum( d ) from t group by a
union all
select null, null, null, sum( d ) from t
)
GROUP BY的3个扩展分析函数:
ROLLUP,CUBE,GROUPING SETS
SELECT T.RECEIPTTYPE FROM GFMIS_ALL.RECEIPT T GROUP BY CUBE(T.RECEIPTTYPE);
SELECT T.RECEIPTTYPE FROM GFMIS_ALL.RECEIPT T GROUP BY ROLLUP(T.RECEIPTTYPE);
SELECT T.RECEIPTTYPE FROM GFMIS_ALL.RECEIPT T GROUP BY
GROUPING
SETS(T.RECEIPTTYPE);
------------------------------------------------------------------------------------------------------
分析函数的使用方法
1. 自动汇总函数rollup,cube,
2. rank 函数, rank,dense_rank,row_number
3. lag,lead函数
4. sum,avg,的移动增加,移动平均数
5. ratio_to_report报表处理函数
6. first,last取基数的分析函数
1、Oracle ROLLUP和CUBE
用法
3、First的用法
4、Last的用法
5、Lag的用法
具体各个函数的使用方法可去baidu里学习,这里只是简要的介绍一下作用。
掌握这些函数的用法,可以在程序开发中减少很多弯路,并且还可以大大提高运行效率。
------------------------------------------------------------------------------------------
http://xsb.itpub.net/post/419/33028
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21927487/viewspace-1117015/ ,如需转载,请注明出处,否则将追究法律责任。