我有一张这样的桌子:
AdID | Hits | CreatedOn
1, 20, 2013-08-28 18:18:42
2, 12, 2013-08-28 13:34:42
3, 12, 2013-08-27 11:34:42
4, 14, 2013-08-27 02:34:42
5, 12, 2013-08-26 11:34:42
6, 12, 2013-08-26 02:34:42
我想结果会是这样的:
1, 20, 2013-08-28
4, 14, 2013-08-27
5, 12, 2013-08-26
基本上,它会选择每个日期中历史最长的,如果点击率相同,它会选择AdID的顶部
在mySQL中如何做到这一点?
最佳答案
这将执行得慢一点,因为您需要从日期中提取时间,但将为您提供所需的结果。
SELECT a.AdID, a.Hits, DATE(a.CreatedON) CreatedON
FROM tableName a
INNER JOIN
(
SELECT DATE(CreatedON) CreatedON,
MAX(Hits) Hits
FROM tableName
GROUP BY DATE(CreatedON)
) b ON a.Hits = b.Hits AND
DATE(a.CreatedON) = b.CreatedON
SQLFiddle Demo
关于mysql - 如何在MySQL中按日期分组 HitTest 门的ID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18374429/