我在这里有一个有趣的问题。我有一个表格,可以存储访问者的highway=path
和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)
是访问量最大的
由于
答案 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;