我正在尝试显示过去7天内“浏览次数最多的产品”。
我的数据库是product_views
,其中包含以下3个字段:
product_id
,IP
,ViewStamp
邮票类型为timestamp
,默认为CURRENT_TIMESTAMP
。所以它们的格式如下:2014-02-02 22:24:54
。
如何对给定天数内行数/计数最多的product_id
进行分组?我似乎无法远程纠正此查询。
感谢您的帮助。我希望我能正确解释这一点。
答案 0 :(得分:0)
SELECT product_id, COUNT(1) as c
FROM product_views
WHERE ViewStamp BETWEEN '2014-02-02 22:24:54' AND '2014-10-02 22:24:54'
GROUP BY product_id
ORDER BY c DESC
LIMIT 1
这将为您提供具有该范围的最大数量的产品ID
修改强>
是否可以让SQL显示最近7天而不是手动输入实际范围?
是
SELECT product_id, COUNT(1) as c
FROM product_views
WHERE DATEDIFF(NOW(), ViewStamp) <= 7
GROUP BY product_id
ORDER BY c DESC
LIMIT 1