在sql中比较每两个人的移动

ddrv8njm  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(293)

我在配置单元的一个表中具有以下属性: PERSON_ID , DAY , ZONE , TIME , DWELL_TIME 我需要知道哪一个人在同一个区域、同一天、同一时间和同一个人在Hive同一张table上的停留时间有相似的动作
在同一时间在同一区域内移动并在该区域内停留类似时间的人应被视为同一人。
基本上,我试图通过识别类似的移动来消除双卡用户。
表格:

结果:

我不知道如何写这个问题在Hive的代码,有人可以帮助吗?
如果你需要更多的细节,让我知道
谢谢您

yws3nbqq

yws3nbqq1#

可以使用以下方法为每组数据生成ID列表:

select collect_list(ids) as all_ids, day_id, initial_time, final_time, zone_id
from t
group by day_id, initial_time, final_time, zone_id;

这可能会解决您想要解决的问题。您可以连接回表以添加包含所有ID的列。

相关问题