2017-03-21 30 views
0

我有两列的表:与重复处理基于某些条件SQL蜂巢

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 

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

回答

0

尝试SQL查询:

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

+0

对我来说,关键2有两个日期为空。我仍然需要这个键来显示一个空值。这个查询是否照顾到了这一点? – Aman

+0

你运行了查询吗? –

+0

我做到了,它工作。非常感谢 – Aman

0

这将给期望的结果

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;