我正在尝试计算每天的事件数,包括我的数据库没有数据的日子,我创建了一个日历表,并尝试了我找到的所有建议,但由于某种原因,我不断加倍每天的事件。下面是我一直在玩的查询。
SELECT DAY(c.datefield) as date, COUNT(s.timestamp) as count
FROM calendar c
LEFT OUTER JOIN Seizures s ON (DATE(s.timestamp) = c.datefield)
WHERE c.datefield LIKE '2012-11-%'
GROUP BY c.datefield
如果有人可以帮助我防止我在桌子上撞一下,我会非常感激。
注:
如果我执行直接计数查询而不尝试使用JOIN来填充没有数据的日期,我会得到正确的条目数。只有在尝试加入时,计数才会因为某种原因而翻倍。
答案 0 :(得分:0)
事实证明,我的日历表中所有条目都重复了,这是导致计数加倍的原因,@ PinnyM引导我找出这个解决方案。
Thanx寻求帮助。
答案 1 :(得分:0)
根据这些结果,您的calendar
表似乎包含重复的行。您可以通过运行来检查:
SELECT datefield, COUNT(*) FROM calendar
WHERE datefield LIKE '2012-11-%'
GROUP BY datefield
HAVING COUNT(*) > 1
如果返回任何行,那么在查询按预期工作之前,您需要解决重复项。