Hive - 根据某些关键字段选择唯一行

时间:2015-09-24 06:42:18

标签: hadoop hive

我正在使用Hive 1.2.1,并希望根据empid选择唯一的行

empid  empname  dept 
101    aaaa     dept1
101    aaaa     dept2
102    bbbb     dept1
103    cccc     dept2

我尝试使用相关子查询,但这不起作用

select empid, 
       empname,
    dept
       (select count(*) 
        from emp t2 
        where t2.empid = t1.empid) as row_number
from emp t1 where row_number=1
order by empid;

有没有办法根据某些关键字段选择唯一值?需要你的帮助..

预期输出

empid  empname  dept 
101    aaaa     dept1
102    bbbb     dept1
103    cccc     dept2

感谢。

1 个答案:

答案 0 :(得分:1)

如果每个唯一键需要一行,则可以使用row_number():

select empid, empname, dept from (
select row_number() over (partition by empid order by empname , dept) as rowNum, empid, empname, dept from table
) q where rowNum == 1