0

我试图获取每天的事件计数,包括我的数据库中没有数据的日子,我创建了一个日历表,并尝试了我找到的所有建议,但由于某种原因,我不断获得双倍的事件数量每天。下面是我一直在玩的查询。

 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 来填写没有数据的日期,我会得到正确的条目计数。只有在尝试加入时,计数才会因某种原因翻倍。

4

2 回答 2

0

事实证明,我的日历表的所有条目都以某种方式重复,这就是导致计数加倍的原因,@PinnyM 引导我找出这个解决方案。

感谢您的帮助。

于 2012-12-19T20:47:31.177 回答
0

根据这些结果,您的表似乎calendar包含重复的行。您可以通过运行检查这一点:

SELECT datefield, COUNT(*) FROM calendar
WHERE datefield LIKE '2012-11-%'
GROUP BY datefield
HAVING COUNT(*) > 1

如果返回任何行,那么您有重复项需要解决,然后您的查询才能按预期工作。

于 2012-12-19T20:48:59.483 回答