Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL趋势查询_Mysql_Sql_Select_Trending - Fatal编程技术网

MYSQL趋势查询

MYSQL趋势查询,mysql,sql,select,trending,Mysql,Sql,Select,Trending,我有一个名为log的表,它记录最近使用的项目。列如下: u\u id(唯一编号) 项目id(项目id号) 访问时间(服务器时间戳) 我想创建一个查询,查找一段时间内访问次数最多的项目的趋势。例如,在过去60分钟(服务器时间)内访问最多的前10项是什么 如何创建这样的查询 从日志中选择项目id、计数(*) SELECT item_id, COUNT(*) FROM log WHERE TIMESTAMPDIFF(MINUTE, access_time, NOW()) <= 60 GRO

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

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

如何创建这样的查询

从日志中选择项目id、计数(*)
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

其中TIMESTAMPDIFF(MINUTE,access\u time,NOW())我只需计算过去一小时内访问的项目数,按访问次数排序,然后取前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