准备数据
create table du_test1 (
f1 string,
f2 string,
f3 string,
cnt int);
insert into table du_test1
VALUES
('A', 'A', 'B', 1),
('B', 'B', 'A', 1),
('A', 'A', 'A', 2);
with cube:维度全组合
select
f1,
f2,
f3,
sum(cnt),
GROUPING__ID
from du_test1
group by f1, f2, f3 with cube
--相当于group by f1, f2, f3 grouping sets(
-- (),
-- (f1),
-- (f2),
-- (f3),
-- (f1, f2),
-- (f1, f3),
-- (f2, f3),
-- (f1, f2, f3)
-- )
order by 5;
f1 f2 f3 _c3 grouping__id
A A B 1 0
A A A 2 0
B B A 1 0
A A NULL 3 1
B B NULL 1 1
A NULL A 2 2
B NULL A 1 2
A NULL B 1 2
B NULL NULL 1 3
A NULL NULL 3 3
NULL A B 1 4
NULL B A 1 4
NULL A A