3

我有一个表,称为log记录最近使用的项目,列如下:

  • u_id(唯一编号)
  • item_id(项目 ID 号)
  • access_time(服务器时间戳)

我想创建一个查询来查找一段时间内访问次数最多的项目的趋势。例如,在过去 60 分钟(服务器时间)内访问次数最多的前 10 个项目是什么。

如何创建这样的查询?

4

2 回答 2

2
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-12T22:25:59.683 回答
2

我只计算最近一小时内访问的项目,按访问次数排序,并获得前 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    10
于 2015-10-12T22:26:40.740 回答