根据SQL Hive的某些条件处理重复项

时间:2017-03-21 05:21:53

标签: sql hive

我有一个包含两列的表格:

Key    Date
1      a
1      a
1      NULL
2      NULL
2      NULL
3      b
3      NULL
4      c
4      c

我需要这样的最终输出:

Key     Date
1       a
2       NULL
3       b
4       c

换句话说,一个键可以有多个相等的日期,多个相等的日期和一个null,所有空值,或一个日期为空。 我需要从表中删除重复项,但无法创建这些规则。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

尝试使用sql Query:

select Distinct a.[Key],b.[Date] from TEST a left join TEST b on a.[Key] = b.[Key] and b.[Date] is not null 

enter image description here

答案 1 :(得分:1)

这将给出所需的结果

  select distinct key, date from Table_Name  , 
( select key as x ,size(collect_list(date)) as a from Table_Name group by key )
temp   
where (Table_Name.key = temp.x and a=0) OR  date is not null;