如果在过去7天中至少有5个不同的客户使用了相同的IP,我只想选择IP地址。但是结果是错误的。
table_1
customer ip date
1 0.0.0.0 15.11.2019
2 0.0.0.0 11.11.2019
3 0.0.0.0 09.11.2019
4 0.0.0.0 10.11.2019
table_2
customer ip date
1 0.0.0.0 15.11.2019
6 1.2.2.2 11.11.2019
4 0.0.0.0 09.11.2019
8 0.0.0.0 10.11.2019
9 5.5.5.5 12.11.2019
结果应为0.0.0.0,因为客户1、2、3、4和8在过去7天使用相同的ip。
SELECT y.ip,x.customer
from table_1 x
inner join
table_2 y
on y.ip = x.ip
WHERE x.DATE > SYSDATE - 7
group by y.ip,y.customer
Having Count(y.customer)>=5
答案 0 :(得分:2)
尝试像下面那样使用不同的计数
Error: File not found Error
答案 1 :(得分:2)
从样本数据来看,您的数据看起来像分布在两个具有相同结构的表上。如果是这样,您想union all
两个表(而不是联接它们),然后进行聚合:
select t.ip
from (
select t1.customer, t1.ip, t1.date from table_1 t1
union all
select t2.customer, t2.ip, t2.date from table_2 t2
) t
where t.date > sysdate - 7
group by t.ip
having count(distinct t.customer) >= 5