2015-10-12 128 views
3

我有一個表稱爲log,它記錄最近使用的項目列如下:MYSQL趨勢查詢

  • u_id(一個唯一的號碼)
  • item_id(項目ID號)
  • access_time(一個服務器時間戳)

我想創建一個查詢,查詢一段時間內訪問最多的項目的趨勢。例如,最近60分鐘(服務器時間)中訪問量最大的前10個項目是什麼。

如何創建這樣的查詢?

回答

1
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 
1

我只希望通過訪問次數統計中的項目在過去一小時訪問的項目,順序和取前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