Hive.GROUPING SETS

干货

Aggregate Query with GROUPING SETS

Equivalent Aggregate Query with GROUP BY


SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b GROUPING SETS ( (a,b) )


SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b
SELECT a, b, SUM( c ) FROM tab1 GROUP BY a, b GROUPING SETS ( (a,b), a)

  1. SELECT a, b, SUM( c ) FROM tab1 GROUP BY a, b
  2. UNION
  3. SELECT a, null, SUM( c ) FROM tab1 GROUP BY a

SELECT a,b, SUM( c ) FROM tab1 GROUP BY a, b GROUPING SETS (a,b)

  1. SELECT a, null, SUM( c ) FROM tab1 GROUP BY a
  2. UNION
  3. SELECT null, b, SUM( c ) FROM tab1 GROUP BY b

SELECT a, b, SUM( c ) FROM tab1 GROUP BY a, b GROUPING SETS ( (a, b), a, b, ( ) )

  1. SELECT a, b, SUM( c ) FROM tab1 GROUP BY a, b
  2. UNION
  3. SELECT a, null, SUM( c ) FROM tab1 GROUP BY a, null
  4. UNION
  5. SELECT null, b, SUM( c ) FROM tab1 GROUP BY null, b
  6. UNION
  7. SELECT null, null, SUM( c ) FROM tab1
其中的null可以用nvl转化下。

猜你喜欢

转载自blog.csdn.net/hxiaowang/article/details/80916646