脚本: select ql_state,
sum(case
when ql_kind = 'SP' then
1
else
0
end),
sum(case
when ql_kind = 'CF' then
1
else
0
end)
from ql_inf
group by ql_state结果:QL_STATE SP CF
H 3 537
A 64 5943
请问 脚本中的红色的数字是什么意思啊?是不是当查询ql_inf这张表时 如果ql_kind='CF'或ql_kind='SP' 时 就吧1或0付给它们?谢谢各位!!!
sum(case
when ql_kind = 'SP' then
1
else
0
end),
sum(case
when ql_kind = 'CF' then
1
else
0
end)
from ql_inf
group by ql_state结果:QL_STATE SP CF
H 3 537
A 64 5943
请问 脚本中的红色的数字是什么意思啊?是不是当查询ql_inf这张表时 如果ql_kind='CF'或ql_kind='SP' 时 就吧1或0付给它们?谢谢各位!!!
sum(case when ql_kind = 'SP' then 1 else 0 end),
sum(case when ql_kind = 'CF' then 1 else 0 end)
from ql_inf
group by ql_state
这是典型的行列转换.
参考如下(把下面的max换成sum即可.):
/*
标题:静态行列转换
作者:爱新觉罗.毓华
时间:2008-05-05
地点:广东深圳
*//*
col1 col2 col3
A x 1
A y 2
A z 3
B x 2
B y 1
B z 1 转换为col1 x y z
A 1 2 3
B 2 1 1
*/create table tb(col1 varchar2(10) , col2 varchar2(10) , col3 varchar2(10))
insert into tb values('A' , 'x' , '1')
insert into tb values('A' , 'y' , '2')
insert into tb values('A' , 'z' , '3')
insert into tb values('B' , 'x' , '2')
insert into tb values('B' , 'y' , '1')
insert into tb values('B' , 'z' , '1')--1
select col1,
max(case col2 when 'x' then col3 else '' end) x,
max(case col2 when 'y' then col3 else '' end) y,
max(case col2 when 'z' then col3 else '' end) z
from tb
group by col1--2
select col1 ,
max(decode(col2 , 'x' , col3)) x,
max(decode(col2 , 'y' , col3)) y,
max(decode(col2 , 'z' , col3)) z
from tb
group by col1
drop table tb/*
COL1 X Y Z
---------- ---------- ---------- ----------
A 1 2 3
B 2 1 1
2 rows selected
*/
ql_kind='CF'或ql_kind='SP'意思就是按ql_state分组 就是统计结果集中ql_kind='CF' 有多少行,ql_kind='SP'的有多少行