本帖最后由 圆桌布 于 2015-7-2 11:23 编辑
表数据如下:
ID CITY
CUST_LEVEL
---------- ----------------------------- --------------------
1 北京
A
2 北京
B
3 北京
C
4 西安
A
5 西安
C
6 西安
D
7 北京
B
8 西安
D
9 西安
D
期望查询结果:
CITY
CUST_LEVEL
TOTAL
-------------------------------- -------------------- ----------
北京
A
1
北京
B
2
北京
C
1
北京
D
0
西安
A
1
西安
C
1
西安
D
3
西安
B
0
表创建脚本:
create table crm(id number primary key,city varchar2(50),cust_level varchar2(20));
insert into crm(id,city,cust_level) values(1,'北京','A');
insert into crm(id,city,cust_level) values(2,'北京','B');
insert into crm(id,city,cust_level) values(3,'北京','C');
insert into crm(id,city,cust_level) values(4,'西安','A');
insert into crm(id,city,cust_level) values(5,'西安','C');
insert into crm(id,city,cust_level) values(6,'西安','D');
insert into crm(id,city,cust_level) values(7,'北京','B');
insert into crm(id,city,cust_level) values(8,'西安','D');
insert into crm(id,city,cust_level) values(9,'西安','D');
使用group by 写法:
select city, cust_level, count(id) total
from crm
group by city, cust_level
order by city;
查询结果如下:
CITY
CUST_LEVEL
TOTAL
-------------------------------------------------- -------------------- ----------
北京
A
1
北京
B
2
北京
C
1
西安
A
1
西安
C
1
西安
D
3
希望CUST_LEVEL的每一个值A、B、C、D都在结果中展示,某CITY没有对应的CUST_LEVEL,TOTOL为0
|