在Hive中查询

时间:2014-01-29 10:03:51

标签: sql hadoop mapreduce hive

在SQL中,我们有分区和分组

select deptno, count(*) c from emp group by deptno;

DEPTNO C
------ -
10     3
20     5
30     6

select deptno, count(*) over (partition by deptno) c from emp;


DEPTNO C
------ -
10     3
10     3
10     3
20     5
20     5
20     5
20     5
20     5
30     6
30     6
30     6
30     6
30     6
30     6

如果我们需要在HIVE中练习同样的事情,那将是多种选择。 我们在Hive中是否也有相同的内容? 请建议

先谢谢。

2 个答案:

答案 0 :(得分:1)

Hive支持窗口函数,请参阅Windowing and Analytics Functions。所以就像你发布的那样:

select deptno, count(*) over (partition by deptno) c from emp;

诀窍是你需要在最近具有窗口功能的Hive上。链接页面显示这些是在Hive 0.11中引入的。

至于第一个只是普通聚合的查询select deptno, count(*) c from emp group by deptno;,我认为在第-1版支持...

答案 1 :(得分:0)

同样的问题..

我尝试了窗口和分析功能。

失败:ParseException行1:29缺少来自'(' near'('在子查询源中) 第1:30行无法识别“PARTITION'附近的输入' BY' '工资'在子查询源