個別の顧客の数を数え、それを別の列でグループ化しています。グループ内に顧客が見つからない場合は、結果にゼロを返したいと思います。次のコードでは、結果にゼロが含まれていません。誰か助けてくれませんか?
SELECT download_date,resolution,COUNT(DISTINCT customer_id) FROM test.sample
GROUP BY download_date,resolution;
これが私に与えるものは次のとおりです。
----------------------------------------
| 2011-06-09| HD | 1 |
----------------------------------------
| 2011-06-09| SD | 1 |
----------------------------------------
| 2012-06-10| SD | 1 |
----------------------------------------
一方、私は次のものを取得しようとしています:
----------------------------------------
| 2011-06-09| HD | 1 |
----------------------------------------
| 2011-06-09| SD | 1 |
----------------------------------------
| 2012-06-10| HD | 1 |
----------------------------------------
| 2012-06-10| SD | 0 |
----------------------------------------
テーブル構造は次のとおりです。
CREATE TABLE test.sample (
`customer_id` VARCHAR(15) NULL DEFAULT NULL,
`download_date` DATE NULL DEFAULT NULL,
`resolution` VARCHAR(2) NULL DEFAULT NULL,
`total_units` INT(11) NULL DEFAULT NULL);
INSERT INTO test.sample(`customer_id`,`download_date`,`resolution`,`total_units`)
VALUES('1','2012-06-10','HD',40),('1','2012-06-10','HD',20),
('2','2011-06-09','SD',10),('2','2011-06-09','HD',20);