准备数据
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

本文介绍了Hive中用于数据分组的高级特性,包括with cube用于生成所有可能的维度组合,with rollup进行维度上卷操作,以及grouping sets()允许自定义分组组合。通过实例展示了这些功能如何在实际数据分析中提升效率。
最低0.47元/天 解锁文章
989

被折叠的 条评论
为什么被折叠?



