繁体   English   中英

MySQL:如何计算每天每页的访问者?

[英]MySQL: How can I count visitors per page per day?

我在这里有一个有趣的查询。 我有一个表,用于存储访问者的ippage_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM