group_name member_type brand cnt
市人民政府 1 1000 28
市人民政府 1 1016 6
市人民政府 1 1022 6
市人民政府 2 1000 1
市人民政府 3 1000 9
市人民政府 3 1016 2
市人民政府 3 1022 1
区人民政府 1 1000 13
区人民政府 1 1016 3
区人民政府 1 1022 2
区人民政府 3 1000 3
.
.
.group_name 里有成员member_type三种(1,2,3),成员所用的品牌也有3种(1000,1016,1022),cnt是其已经统计出来的数量,现在要求把结果变成以下形式:
group_name 1 | 2 | 3
1000 1016 1022 | 1000 1016 1022 | 1000 1016 1022
市人民政府 28 6 6 | 1 0 0 | 9 2 1
区人民政府 13 3 2 | 0 0 0 | 3 0 0
.
.
也就是统计每一个group_name,先按member_type分成1,2,3,再把每一个member_type又各分成,1000,1016,1022三种,然后统计各数量....数量已经统计出来,就是cnt,但是不知道列怎么转化成行....,望高手帮忙,谢谢!
市人民政府 1 1000 28
市人民政府 1 1016 6
市人民政府 1 1022 6
市人民政府 2 1000 1
市人民政府 3 1000 9
市人民政府 3 1016 2
市人民政府 3 1022 1
区人民政府 1 1000 13
区人民政府 1 1016 3
区人民政府 1 1022 2
区人民政府 3 1000 3
.
.
.group_name 里有成员member_type三种(1,2,3),成员所用的品牌也有3种(1000,1016,1022),cnt是其已经统计出来的数量,现在要求把结果变成以下形式:
group_name 1 | 2 | 3
1000 1016 1022 | 1000 1016 1022 | 1000 1016 1022
市人民政府 28 6 6 | 1 0 0 | 9 2 1
区人民政府 13 3 2 | 0 0 0 | 3 0 0
.
.
也就是统计每一个group_name,先按member_type分成1,2,3,再把每一个member_type又各分成,1000,1016,1022三种,然后统计各数量....数量已经统计出来,就是cnt,但是不知道列怎么转化成行....,望高手帮忙,谢谢!
市政1_1000,市政1_1016,市政1_1022,市政2_1000, ...
以后的就好了吧,select substr(group_name,1,5) as group_name,
(case
when substr(group_name,1,5)='市政' and member_type=1000 then
cnt
) sz_1000,
.....
.....
有没别的办法?
我也知道用decode(a,b,c),但是decode好像只支持一个条件吧?
我这边需要用到两个条件,(看young0x()写的),
case when substr(group_name,1,5)='市政' and member_type=1000 then cnt
,这边用到substr(group_name,1,5)='市政' and member_type=1000 两个条件,那用decode 该怎么写呢?