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

過去 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
于 2015-10-12T22:26:40.740 に答える