【发布时间】:2016-07-18 08:10:14
【问题描述】:
我被这个查询卡住了。我需要按日期、card_id 进行分组,并且只显示最高点击率。我有这些数据:
date card_name card_id hits
29/02/2016 Paul Stanley 1345 12
29/02/2016 Phil Anselmo 1347 16
25/02/2016 Dave Mustaine 1349 10
25/02/2016 Ozzy 1351 17
23/02/2016 Jhonny Cash 1353 13
23/02/2016 Elvis 1355 15
20/02/2016 James Hethfield 1357 9
20/02/2016 Max Cavalera 1359 12
我现在的查询
SELECT DATE(card.create_date) `day`, `name`,card_model_id, count(1) hits
FROM card
Join card_model ON card.card_model_id = card_model.id
WHERE DATE(card.create_date) >= DATE(DATE_SUB(NOW(), INTERVAL 1 MONTH)) AND card_model.preview = 0
GROUP BY `day`, card_model_id
;
我想按日期、card_id 分组并过滤较高的命中结果,每个日期只显示一行。好像我用 group by 运行 max(hits) 但我不会工作
喜欢:
date card_name card_id hits
29/02/2016 Phil Anselmo 1347 16
25/02/2016 Ozzy 1351 17
23/02/2016 Elvis 1355 15
20/02/2016 Max Cavalera 1359 12
我们将不胜感激。感谢阅读。
【问题讨论】:
-
您的查询有两个表。您的示例数据只有一个。
标签: mysql sql count group-by max