我在HIVE中有很大的表, 样本数据如下所示:
我想识别并删除重复记录:
如果是字段 ' StudentID&#39 ;, ' courseID' 相同且'地点'是不相同,但在5秒内差异在'日期'字段
对于此示例,只有第一行(或第二行)符合要删除的标准 所以我想做一个返回所有其他行的查询(=删除第1,2行中的一行), 没有自我加入,因为表格非常大
由于
答案 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;