PHP
mysql查询distinct跟count使用技巧
本篇博客将为大家讲解mysql查询distinct跟count使用技巧
昨天同事反馈统计有问题,我便开始排查并修复这个BUG,但这个过程却不是很顺利,博主也是在这个地方被坑了一把,好在最后成功梳理了问题所在,重新写了查询语句,成功排除这个BUG,今天也顺便把这个语句记录下来,跟大家分享。
首先先看看我们的数据结构:
使用技巧:
1、查看某一天IP去重的统计数量
SELECT count(DISTINCT(`ip`) ) FROM `xykadmin`.`pv` WHERE `yemianid` =1910 and `visit_time` >='2018-09-10 00:00:00' and `visit_time` <='2018-09-10 23:59:59'
2、查看某一天IP去重按24小时分组统计数量
SELECT DATE_FORMAT(`visit_time`, '%H') AS min, COUNT(DISTINCT(`ip`)) FROM ( SELECT DISTINCT (`ip`) AS ip, `visit_time` FROM `xykadmin`.`pv` WHERE `yemianid` = 1910 AND `visit_time` >= '2018-09-10 00:00:00' AND `visit_time` <= '2018-09-10 23:59:59' GROUP BY 1 ) a GROUP BY min
3、查看某一天IP去重按10分钟分组统计数量
SELECT substring(`visit_time`, 12,4) AS min, COUNT(DISTINCT(`ip`)) FROM ( SELECT DISTINCT (`ip`) AS ip, `visit_time` FROM `xykadmin`.`pv` WHERE `yemianid` = 1910 AND `visit_time` >= '2018-09-10 00:00:00' AND `visit_time` <= '2018-09-10 23:59:59' GROUP BY 1 ) a GROUP BY min
以上这三个查询便可以进行IP去重统计,相信大家在日常开发中,可能会遇到,所以博主将他们都记录下来,这样方便大家参考查阅。
这个不错,刚好今天用到,感谢博主的分享,解决了我的难题
回复哈哈,客气客气,我也只是将我遇过的坑记录下来
回复