有表 如下 name type num
张三 门前 5
张三 现场 4
张三 其他 3
李四 门前 5
李四 现场 6
李四 汽修 7
李四 其他 2
想通过一条sql语句 得到如下的表:name 门前 现场 汽修 其他
张三 5 4 0 3
李四 5 6 7 2
请各位高手指教,不胜感激!!!
张三 门前 5
张三 现场 4
张三 其他 3
李四 门前 5
李四 现场 6
李四 汽修 7
李四 其他 2
想通过一条sql语句 得到如下的表:name 门前 现场 汽修 其他
张三 5 4 0 3
李四 5 6 7 2
请各位高手指教,不胜感激!!!
现场=sum(case when type='现场' then num else 0 end),
汽修=sum(case when type='汽修' then num else 0 end),
其他=sum(case when type='其他' then num else 0 end)
from tb group by name
name,
门前=sum(case type when '门前' then num else 0 end),
现场=sum(case type when '现场' then num else 0 end),
汽修=sum(case type when '汽修' then num else 0 end),
其他=sum(case type when '其他' then num else 0 end)
from
表
group by
name
name,
sum(case type when '门前' then num else 0 end) as 门前,
sum(case type when '现场' then num else 0 end) as 现场,
sum(case type when '汽修' then num else 0 end) as 汽修,
sum(case type when '其他' then num else 0 end) as 其他
from test
group by name