【发布时间】:2015-03-18 05:14:26
【问题描述】:
如何对不存在的记录进行计数,计数应为“0”?
这是我的桌子:
CREATE TABLE SURVEY
(year CHAR(4),
cust CHAR(2));
INSERT INTO SURVEY VALUES ('2011', 'AZ');
INSERT INTO SURVEY VALUES ('2011', 'CO');
INSERT INTO SURVEY VALUES ('2012', 'ME');
INSERT INTO SURVEY VALUES ('2014', 'ME');
INSERT INTO SURVEY VALUES ('2014', 'CO');
INSERT INTO SURVEY VALUES ('2014', 'ME');
INSERT INTO SURVEY VALUES ('2014', 'CO');
我已经尝试过了,但它当然缺少零计数:
select cust, year, count(*) as count from SURVEY
group by cust, year
我想要这个结果:
+------+---------+--------+
| cust | year | count |
+------+---------+--------+
| AZ | 2011 | 1 |
| AZ | 2012 | 0 |
| AZ | 2014 | 0 |
| CO | 2011 | 1 |
| CO | 2012 | 0 |
| CO | 2014 | 2 |
| ME | 2011 | 0 |
| ME | 2012 | 1 |
| ME | 2014 | 2 |
+------+---------+--------+
请注意:
- 我的表有很多记录(~10k 不同的“客户”)
- 年份可能不连续(例如跳过 2013 年)
- 随着时间的推移,我可能会有 2015 年、2016 年等等
- 实际查询将在 MS_ACCESS'2010 中执行(不确定是否重要)
请帮忙,谢谢!
【问题讨论】: