我有一个名为event
的事件表。为了这个问题的目的,它只有一个字段date
。如何通过SUM限制结果
下面的查询返回了我一个数字,在每个日期发生了未来14天内的事件:
SELECT
DATE_FORMAT(ev.date, '%Y-%m-%d') as short_date,
count(*) as date_count
FROM event ev
WHERE ev.date >= NOW()
GROUP BY short_date
ORDER BY ev.start_date ASC
LIMIT 14
结果可能如下:
+------------+------------+
| short_date | date_count |
+------------+------------+
| 2010-03-14 | 1 |
| 2010-03-15 | 2 |
| 2010-03-16 | 9 |
| 2010-03-17 | 8 |
| 2010-03-18 | 11 |
| 2010-03-19 | 14 |
| 2010-03-20 | 13 |
| 2010-03-21 | 7 |
| 2010-03-22 | 2 |
| 2010-03-23 | 3 |
| 2010-03-24 | 3 |
| 2010-03-25 | 6 |
| 2010-03-26 | 23 |
| 2010-03-27 | 14 |
+------------+------------+
14 rows in set (0.06 sec)
比方说,我想以日期来展示这些事件。同时我只想一次显示最多10个。我将如何做到这一点?
不知怎的,我需要通过date_count字段的SUM来限制这个结果,但我不知道如何。
有人遇到过这个问题吗?
任何帮助,将不胜感激。谢谢
被修改: 我在原来的帖子中忘记了额外的要求(关键的一个,哎呀)是我只想整天。 即。由于限制为10,它只会返回以下行:
+------------+------------+
| short_date | date_count |
+------------+------------+
| 2010-03-14 | 1 |
| 2010-03-15 | 2 |
| 2010-03-16 | 9 |
+------------+------------+
我觉得您的查询不会做你期待什么如果有一天没有任何事件。 – 2010-03-14 11:02:02
如果在某个特定日期没有发生任何事件,那么该日期行将不会出现,这对我的目的是可以的 – denormalizer 2010-03-14 11:10:30
你是说,当你开始在14日添加date_count时,你将在16日停止,因为1+ 2 + 9> = 10 – lexu 2010-03-14 12:32:08