【发布时间】:2013-04-09 17:15:23
【问题描述】:
我有一个如下所示的表结构:
我有一个完美运行的查询,可以计算过去 30 天每天有多少条记录。它看起来像这样:
SELECT DATE(timestamp) AS date, COUNT(id) AS emails FROM 'emails WHERE timestamp >= now() - interval 1 month GROUP BY DATE(timestamp)
这会输出以下内容,非常好:
然而,接下来的事情对我来说似乎太难以想象了。现在我想计算过去 30 天每天有多少条记录,但仅限于时事通讯 = 1 的情况。
我试着写一个像这样的 WHERE 语句:
SELECT DATE(timestamp) AS date, COUNT(*) AS emails, nyhedsbrev FROM emails WHERE timestamp >= now() - interval 1 month AND nyhedsbrev = 1 GROUP BY DATE(timestamp)
... 输出如下:
问题是,它省略了 newsletter = 0 的记录,因此我无法将我的第一个查询与新查询进行比较,因为日期不匹配。我知道那是因为我使用 WHERE newsletter = 1。
我想要一个查询,而不是省略该记录,该查询仅从该日期开始放置一个“0”。我怎样才能做到这一点?最终的查询应该是这样输出的:
【问题讨论】:
标签: mysql count where-clause