比如有如下的表,很多行里,col1和col2内容是一样的,col3和col4各不一样。其中,col4里的内容要分两类,某个值的为一类,其他值的为另一类。怎么进行分类归总归总。例子如下
TA:
COL1,COL2,COL3,COL4
A001 A001 245 BC01
A001 A001 234 BC01
A001 A001 224 KFSC
A001 A001 123 SCDF
A001 A001 435 TGFR
A001 A001 453 TFGR
B001 B001 125 BC01
B001 B001 234 GFVB
B001 B001 321 EDVF
B001 B001 234 EDFV
……要求,按CLO1分类汇总,同时,按COL4,把BC01和其他的分成2类。最后得到如下结果
COL1,COL2,BC01,OTHER
A001 A001 479 1235
B001 B001 125 789该怎么写sql语句?
TA:
COL1,COL2,COL3,COL4
A001 A001 245 BC01
A001 A001 234 BC01
A001 A001 224 KFSC
A001 A001 123 SCDF
A001 A001 435 TGFR
A001 A001 453 TFGR
B001 B001 125 BC01
B001 B001 234 GFVB
B001 B001 321 EDVF
B001 B001 234 EDFV
……要求,按CLO1分类汇总,同时,按COL4,把BC01和其他的分成2类。最后得到如下结果
COL1,COL2,BC01,OTHER
A001 A001 479 1235
B001 B001 125 789该怎么写sql语句?
insert into tb values('A001', 'A001', 245 , 'BC01')
insert into tb values('A001', 'A001', 234 , 'BC01')
insert into tb values('A001', 'A001', 224 , 'KFSC')
insert into tb values('A001', 'A001', 123 , 'SCDF')
insert into tb values('A001', 'A001', 435 , 'TGFR')
insert into tb values('A001', 'A001', 453 , 'TFGR')
insert into tb values('B001', 'B001', 125 , 'BC01')
insert into tb values('B001', 'B001', 234 , 'GFVB')
insert into tb values('B001', 'B001', 321 , 'EDVF')
insert into tb values('B001', 'B001', 234 , 'EDFV')
goselect col1 , col2,
sum(case when col4 = 'BC01' then COL3 else 0 end) [BC01],
sum(case when col4 <> 'BC01' then COL3 else 0 end) [OTHER]
from tb
group by col1 , col2drop table tb/*
col1 col2 BC01 OTHER
---------- ---------- ----------- -----------
A001 A001 479 1235
B001 B001 125 789(所影响的行数为 2 行)
*/