我想根据我在hive或oracle中的要求筛选数据
person month number_of_visits a 1 12 a 2 10 a 3 20 a 4 10 b 1 12 b 3 15 b 4 12 c 1 10 c 3 18 d 1 14 d 2 18 d 3 26 d 4 34 d 5 36
我的输出要求是:我想过滤的人谁访问商场每月定期。如果我考虑4个月的人,我只需要a和d,因为我可以看到他们1、2、3、4个月的数据。我不能满足这个要求。有谁能帮助我吗?
vxqlmq5t1#
选择就诊时间超过4个月的人员:
select person from table group by person having count(distinct month) >=4
要计算连续的访问次数就更难了。让我们找出那些至少有4次连续就诊但只有连续就诊的人(这比你的问题容易)。
select person from table group by person having count(distinct month) >=4 and min(month) = 1 and max(month) - min(month) = count(distinct month) - 1
如果指定起始月和结束月,则可以使用上述查询来解决问题。
1条答案
按热度按时间vxqlmq5t1#
选择就诊时间超过4个月的人员:
要计算连续的访问次数就更难了。让我们找出那些至少有4次连续就诊但只有连续就诊的人(这比你的问题容易)。
如果指定起始月和结束月,则可以使用上述查询来解决问题。