获取每小时、每天的独特ip数

juzqafwq  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(341)

更新后的问题是:我有一张有日期和ip的table。我想为每小时提取新的非重复的不同ip的计数,而不是不同ip聚合小时的计数
我的table看起来像

Date          Time              IP
07-01-2018  08:00:00           1.1.1
07-02-2018  09:00:00           1.1.1
07-02-2018  10:00:00           2.2.2
07-03-2018  11:00:00           1.1.1
07-03-2018  12:00:00           2.2.2
07-03-2018  13:00:00           3.3.3

接着

07-01-2018 08:00:00, distinct count of ip should be 1 (1.1.1)
07-02-2018 09:00:00, new distinct count of ip should be 0
07-02-2018 10:00:00, new distinct count of ip should be 1 (2.2.2) 
07-03-2018 11:00:00, new distinct count of ip should be 0
07-03-2018 12:00:00, new distinct count of ip should be 0
07-03-2018 13:00:00, new distinct count of ip should be 1 (3.3.3)

我期望的结果是:日期时间统计2018年07月01日08:00:00 1 07-02-2018 09:00:00 0 07-02-2018 10:00:00 1 07-03-2018 11:00:00 0 07-03-2018 12:00:00 0 07-03-2018 13:00:00 1
vlam的查询按天计算唯一计数,选择aa.date,count(distinct aa.ip)作为count\u ips from table1 aa where not exists(选择bb.ip from table1 bb where bb.ip=aa.ip and bb.date<aa.date)group by aa.date order by aa.date asc;
现在我想把时间分解到每一个小时。有什么建议吗?
提前谢谢!

yvgpqqbh

yvgpqqbh1#

我修改了原来的sql,只是添加了一个过滤,以删除在该行中的日期之前出现的所有ip地址,因为只有新的ip地址应该被计算在内。

SELECT aa.date, count(distinct aa.ip) as count_ips FROM table1 aa
where not exists
(select bb.ip from table1 bb where bb.ip = aa.ip and bb.date < aa.date)
group by aa.date order by aa.date asc;

相关问题