如何识别"类似"没有加入的记录

时间:2017-09-10 10:56:47

标签: sql join hive

我在HIVE中有很大的表, 样本数据如下所示:

enter image description here

我想识别并删除重复记录:

如果是字段 ' StudentID&#39 ;, ' courseID' 相同且'地点'是相同,但在5秒内差异在'日期'字段

对于此示例,只有第一行(或第二行)符合要删除的标准 所以我想做一个返回所有其他行的查询(=删除第1,2行中的一行), 没有自我加入,因为表格非常大

由于

1 个答案:

答案 0 :(得分:0)

您可以使用窗口功能。类似的东西:

select t.*
from (select t.*,
             lead(place) over (partition by studentid, courseid order by date) as next_place,
             lead(date) over (partition by studentid, courseid order by date) as next_date
      from t
     ) t
where unix_timestamp(next_date) <= unix_timestamp(date) + 5 and
      next_place <> place;