仅当特定列在同一天内具有两个或多个不同的ip_address时,才选择记录



我希望能够选择在同一天内具有不同ip_address的记录,并按name对其进行分组。

举个例子:

name   |    ip_address    |    date
user1  |    127.0.0.1     |  2020-01-01
user1  |    127.0.0.2     |  2020-01-01
user2  |    127.0.0.1     |  2020-01-01
user2  |    127.0.0.2     |  2020-01-02
user3  |    127.0.0.1     |  2020-01-03
user3  |    127.0.0.4     |  2020-01-03
user3  |    127.0.0.1     |  2020-01-04
user3  |    127.0.0.1     |  2020-01-04

期望输出:

name   |    date
user1  |    2020-01-01
user3  |    2020-01-03

选择CCD_ 3和CCD_。

用于在CCD_ 6处具有不同ip地址的CCD_。

用于在CCD_ 8处具有不同ip地址的CCD_。

按名称和dt 使用组

然后使用count(不同的ip地址(检查条件,如果它不止一个,则选择记录

SELECT name, dt
FROM src
GROUP BY name, dt
HAVING COUNT(DISTINCT ip_address) > 1;

结果

name    dt
user1   2020-01-01
user3   2020-01-03

最新更新