ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 分析函数 - GROUPING SETS

分析函数 - GROUPING SETS

原创 Linux操作系统 作者:likesky276 时间:2007-04-23 00:00:00 0 删除 编辑

SELECT ,
FROM
WHERE
GROUP BY GROUPING SETS (, ... ,

SQL> SELECT * FROM TEST2;

A B C
---------- ---------- ------------
A B 1.00
A C 1.00
A D 2.00
A D 3.00
C D 3.00
C D 4.00

6 rows selected

SQL> SELECT A,B,SUM(C) FROM TEST2 group by GROUPing sets((A,B),a,b,());

A B SUM(C)
---------- ---------- ----------
A B 1
A C 1
A D 5
C D 7
A 7
C 7
B 1
C 1
D 12
14

10 rows selected

等同于:

SELECT a, b, SUM( c ) FROM test2 GROUP BY a, b UNION
SELECT a, null, SUM( c ) FROM test2 GROUP BY a, null UNION
SELECT null, b, SUM( c ) FROM test2 GROUP BY null, b UNION
SELECT null, null, SUM( c ) FROM test2

注意:在grouping sets中列A和B至少要在语句中出现一次,否则要报错:

SELECT A,B,SUM(C) FROM TEST2 group by GROUPing sets((A),a,())

ORA-00979: 不是 GROUP BY 表达式

SQL> SELECT A,B,SUM(C) FROM TEST2 group by GROUPing sets((A),b,());

A B SUM(C)
---------- ---------- ----------
A 7
C 7
B 1
C 1
D 12
14


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8118583/viewspace-64862/,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORACLE里的随机数
请登录后发表评论 登录
全部评论

注册时间:2007-12-10

  • 博文量
    55
  • 访问量
    96229