【Oracle】增强group by子句相关函数

xixuefeng Oracle, SQL&Function 2017-09-18 10:57:48 1,121 次浏览 【Oracle】增强group by子句相关函数已关闭评论

1:GROUPING()函数

该函数只接受一个参数,参数为数据表的一列。如果该列为空返回1,否则返回0。它仅能与 GROUP BY,ROLLUP,CUBE,GROUPING SETS 一起使用。

2:GROUPING SETS,按照分组字段分别分组

3:GROUPING_ID()函数

如果把列看作向量,每列返回的值为非空,则返回0,为空则返回1,从左至右组成一个二进制的位序列。
这个函数返回的结果不太好描述,作者就不罗嗦了,真是没什么用。

4:GROUP_ID()函数

此函数没有参数,它返回 GROUP BY,ROLLUP,CUBE,GROUPING SETS 统计的重复记录。
若某个特定的分组重复出现n次,那么该函数返回从0到n-1的n个整数,这些整数可以看作是对重复记录进行连续编号。
比如,统计后相同的记录有4行,当出现第一行时,记录不重复,group_id()值为0, 当第一次出现与第一行重复的记录时,group_id()值为1,当第二次重复出现,值为2,第三次重复出现,值为3。

5:小结

是不是没啥用?

 

回顶部