基于每月定期的数据过滤

mnemlml8  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(316)

我想根据我在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个月的数据。
我不能满足这个要求。有谁能帮助我吗?

vxqlmq5t

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

如果指定起始月和结束月,则可以使用上述查询来解决问题。

相关问题