日期:2014-05-16  浏览次数:20808 次

遇到一个很棘手的问题。。请教高人,
以下sql实现:

有如下表:


X Z  

1 11,12
2 10,11
1 11,13
2 12,13,10


结果:

结果 2的数量 1的数量

 10 2 0
 11 1 2
 12 1 1
 13 1 1


------解决方案--------------------
先行转列成还比较好取
x 10的数量 11的数量 12的数量 13的数量
------解决方案--------------------
虽然看懂了,却发现不是一般的麻烦,你的Z列值里的数值是不定的,所以得先把你的
X Z
1 11,12
2 10,11
1 11,13
2 12,13,10
转换成这种格式才行
X Z
1 11
1 12
2 10
2 11
1 11
1 13
2 12
2 13
2 10


------解决方案--------------------
select Z,
sum(case when X=1 then 1 else 0 end),
sum(case when X=2 then 1 else 0 end)
from (上一步结果)
group by z