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

时间:2017-02-14 16:03:14

标签: php mysql

我在这里有一个有趣的问题。我有一个表格,可以存储访问者的highway=pathip以及时间戳(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)是访问量最大的

由于

3 个答案:

答案 0 :(得分:1)

只需在page_id子句中添加GROUP BY

SELECT DATE(date) Date, page_id, COUNT(DISTINCT ip) uniqueperday 
FROM visitors_counter 
GROUP BY DATE(date), page_id

上述查询会返回每页每页唯一ip次访问次数。

答案 1 :(得分:1)

对于你的结果你应该使用group by和count(*)(你有两次相同的id第37页,想要结果3)

SELECT DATE(date) Date, page_id, COUNT(*) visitperday 
FROM visitors_counter 
GROUP BY DATE(date), page_id

其他Giorgios是正确的

答案 2 :(得分:0)

您可以在页面和日期上使用聚合来查找每页每天不同访问者的数量。此外,使用用户变量生成序列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;