首页 > Linux操作系统 > Linux操作系统 > GROUPING_ID的應用
这是计算分组级别的函数。仅当指定了 GROUP BY 时,GROUPING_ID 才能在 SELECT
语法
GROUPING_ID (
GROUPING_ID
GROUPING_ID (
|
聚合的列 |
GROUPING_ID (a, b, c) 输入 = GROUPING(a) + GROUPING(b) + GROUPING(c) |
GROUPING_ID () 输出 |
|---|---|---|
|
a |
100 |
4 |
|
b |
010 |
2 |
|
c |
001 |
1 |
|
ab |
110 |
6 |
|
ac |
101 |
5 |
|
bc |
011 |
3 |
|
abc |
111 |
7 |
每个 GROUPING_ID 参数都必须是 GROUP BY 列表的一个元素。GROUPING_ID () 返回一个 integer 位图,其最低 N 位可能为文字。文字 bit 表明对应参数不是给定输出行的分组列。最低顺序 bit 对应于参数 N,第 N-1 个最低顺序 bit 对应于参数 1。
对于单个分组查询,GROUPING (
例如,以下语句是等价的:
SELECT GROUPING_ID(A,B)
FROM T
GROUP BY CUBE(A,B)
SELECT 3 FROM T GROUP BY ()
UNION ALL
SELECT 1 FROM T GROUP BY A
UNION ALL
SELECT 2 FROM T GROUP BY B
UNION ALL
SELECT 0 FROM T GROUP BY A,B
等價測試:
select grouping_id('a','b')
from dual
group by cube('a','b')
SELECT 3 FROM dual GROUP BY ()
UNION ALL
SELECT 1 FROM dual GROUP BY 'a'
UNION ALL
SELECT 2 FROM dual GROUP BY 'b'
UNION ALL
SELECT 0 FROM dual GROUP BY 'a','b'
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16860121/viewspace-713678/ ,如需转载,请注明出处,否则将追究法律责任。