group by和count在Hive与mysql用法基本一致,
今天说一下group by、count组合用法在hive中的需要注意的地方,以及实现一个功能的sql写法
目标:统计表中id和总条数
模型:tab(id string)
输出:id、count(*)
需求1:输出表中总记录数
select count(*) from tab;
需求2:输出表中id,总条数
select id,count(*) from tab;
这样计算就会报错
解决方式两种
方式一(开窗):
select id,count(*)over() from tab group by id;
方式二(join):
select * from
(select id from tab)a
left join
(select count(*) total from tab) b
group by a.id,b.total;
对比:
1、都需要去重
2、方式一语法简洁
3、方式一执行时间短