SQL分组统计求助。。谢谢
有数据 如下
ID1 ID2 STS COUNT
000101S4
000101F8000
000102S211
000102F2
000103S22
000103F2
000104S85
000105F2
000105S15
我想根据 ID1 ID2 分组
分别取STS 状态 为S F两种的 COUNT值,有的 同 ID1 ID2下,只有S,或只有F,那么缺失的count值为0
同一个ID2字段下面,只有两种STS的可能 S 或者 F
或者 只有 一种,那么就说明 另一种为0
比如 第七条,只有S的记录,没有F,那么就说明F为0
我想得到结果
ID1 ID2 S COUNTS F COUNTF
0001 01 S 4 F 8000
0001 02 S 211 F 2
0001 03 S 22 F 2
0001 04 S 85 F 0
0001 05 S 15 F 2
求SQL....
ORACLE
[解决办法]
--sql:with t as(select 1 a,'01' b,'S' c, 4 d from dualunion allselect 1,'01','F', 8000 from dualunion allselect 1,'02','S', 211 from dualunion allselect 1,'02','F', 2 from dualunion allselect 1,'03','S', 22 from dualunion allselect 1,'03','F', 2 from dualunion allselect 1,'04','S', 85 from dualunion allselect 1,'05','F', 2 from dualunion allselect 1,'05','S', 15 from dual)select a,b,'S' c,sum(case when c='S' then d else 0 end) S ,'F' d, sum(case when c='F' then d else 0 end) F from t group by a,b--result:1 01 S 4 F 80001 02 S 211 F 21 03 S 22 F 21 04 S 85 F 01 05 S 15 F 2