[英]MySQL: How can I count visitors per page per day?
我在这里有一个有趣的查询。 我有一个表,用于存储访问者的ip
和page_id
以及时间戳记( date
)。 我想计算每个page_id
每天的访问者数量,这样我就可以获取该输出并计算出哪个page_id
呈趋势(每天)
表visitors_counter
看起来像这样:
id|page_id | ip | date
1 | 37 |1.1.1.1| 2017-02-10 14:03:16
2 | 38 |1.2.1.1| 2017-02-10 11:04:16
3 | 39 |1.1.3.1| 2017-02-10 16:05:16
4 | 37 |1.5.1.1| 2017-02-10 17:08:16
5 | 37 |1.1.1.1| 2017-02-10 19:07:16
我想实现的目标是:
id|page_id |visitors | date
1 | 37 |3 | 2017-02-10 14:03:16
2 | 38 |1 | 2017-02-10 11:04:16
3 | 39 |1 | 2017-02-10 16:05:16
到目前为止,我已经能够计算出每天的唯一身份访问者数量
SELECT DATE(date) Date, COUNT(DISTINCT page_id) uniqueperday FROM visitors_counter GROUP BY DATE(date)
我知道即时消息很接近,但是我不想要什么,因为我不知道哪个page_id
是访问量最大的
谢谢
只需在GROUP BY
子句中添加page_id
:
SELECT DATE(date) Date, page_id, COUNT(DISTINCT ip) uniqueperday
FROM visitors_counter
GROUP BY DATE(date), page_id
上面的查询返回每天每页的唯一ip
访问次数。
对于结果,您应该使用group by和count(*)(对于第37页,您具有相同的ID的两倍,并且需要结果3)
SELECT DATE(date) Date, page_id, COUNT(*) visitperday
FROM visitors_counter
GROUP BY DATE(date), page_id
否则Giorgios是正确的选择
您可以使用页面和日期上的汇总来查找每天每页的独立访问者计数。 另外,使用用户变量生成序列ID。
set @id := 0;
select @id = @id + 1 id,
page_id,
count(distinct ip) visitors,
min(date)
from visitors_counter
group by page_id, DATE(date)
order by visitors desc, page_id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.