原始表是:
姓名 志愿一 志愿二 志愿三
张三 北京 上海 青岛
李四 青岛 北京 广州
王五 上海 青岛 广州
邓六 上海 青岛 北京
需要出脚本按志愿统计每个城市的人数,结果如下:
志愿一 志愿二 志愿三
北京 1 1 1
青岛 1 2 1
上海 2 1 0
广州 0 0 2
该如何写SQL呢,先谢谢各位了!
------解决方案--------------------
修改一下
select sum(case when xz='志愿一' then 1 else 0 end),
sum(case when xz='志愿二' then 1 else 0 end),
sum(case when xz='志愿三' then 1 else 0 end)
from (
select '志愿一' as xz,志愿一 as zy from tt
union all
select '志愿二' as xz,志愿二 from tt
union all
select '志愿三' as xz,志愿三 from tt) a
group by zy