我有一个名为log的表,它记录最近使用过的项,列如下所示:
u_id(一个唯一的数字)item_id (一个项目标识号)access_time(服务器时间戳)我想要创建一个查询,查找一段时间内访问最多的项目的趋势。例如,在过去60分钟(服务器时间)中被访问最多的前10项是什么。
我如何创建这样的查询?
发布于 2015-10-12 22:25:59
SELECT item_id, COUNT(*) FROM log
WHERE TIMESTAMPDIFF(MINUTE, access_time, NOW()) <= 60
GROUP BY item_id
ORDER BY COUNT(item_id) DESC
LIMIT 0,10发布于 2015-10-12 22:26:40
我只需数一下在最后一小时访问的项目,按访问次数排序,然后取前10位:
SELECT item_id, COUNT(*)
FROM log
WHERE access_time >= DATE_SUB(CURDATE(), INTERVAL 1 HOUR)
GROUP BY item_id
ORDER BY 2 DESC
LIMIT 10https://stackoverflow.com/questions/33091110
复制相似问题