次のようなテーブル構造があります。
過去 30 日間の 1 日あたりのレコード数をカウントする完全に機能するクエリがあります。次のようになります。
SELECT DATE(timestamp) AS date, COUNT(id) AS emails FROM 'emails WHERE timestamp >= now() - interval 1 month GROUP BY DATE(timestamp)
これにより、次のように出力されます。これは完全に問題ありません。
しかし、次のことが難しすぎて想像がつきません。ここで、過去 30 日間の 1 日あたりのレコード数を数えたいと思いますが、ニュースレター = 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)
...そして、それは以下を出力します:
問題は、ニュースレター = 0 のレコードを省略すると、日付が一致しないため、最初のクエリと新しいクエリを比較できないことです。WHERE ニュースレター = 1 を使用しているためです。
レコードを省略する代わりに、その日付から「0」を入れるだけのクエリが必要です。これどうやってするの?最終的なクエリはこれを出力するはずです: