日ごとにグループ化されたすべての行の出現をカウントし、それらを次の形式のデータセットに合計する必要があるデータセットがあります。
| date | count |
| 2001-01-01 | 11 |
| 2001-01-02 | 0 |
| 2001-01-03 | 4 |
問題は、特定の期間の一部のデータが欠落しているため、カウントがゼロになるように新しい日付を作成する必要があることです。この同じ問題を考慮してさまざまなトピックを検索しましたが、それらから、一時的なカレンダー テーブルを作成してすべての日付を保持し、結果データセットを日付テーブルに結合することで解決できることがわかりました。
ただし、使用しているデータベースへの読み取りアクセス権しかないため、別のカレンダー テーブルを作成することはできません。では、これを単一のクエリだけで解決できるでしょうか? そうでない場合は、いつでも PHP でこれを行うことができますが、より簡単な方法でこれを行うことをお勧めします。
編集:コメントで尋ねられた質問に基づいて明確にするために:欠落している日付は、ユーザーが指定した特定の時間枠に必要です。たとえば、クエリは次のようになります。
SELECT date(timestamp), count(distinct(id))
FROM 'table'
WHERE date(timestamp) BETWEEN date("2001-01-01") AND date("2001-12-31")
GROUP BY date(timestamp)