选择而不使用不同的关键字

时间:2019-11-14 21:05:33

标签: sql oracle

如果在过去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

2 个答案:

答案 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