热线电话:13121318867

登录
2022-09-13 阅读量: 6504
SQL行转列,巧用case

1663073735826(1).jpg

如上图所示的PopTbl2表,包含(pref_name,sex,population),现要求通过SQL代码转化成下图所示的表:

(说明:全国表示上图所有县加一起,四国表示图示主要的四个县汇总值)

cb5bf4c77ac38427293599c87062d45.jpg




解法:



/* 转换行列——在表头里加入汇总和四国 */

SELECT case when sex="1" then "男" else "女" end as 性别,

SUM(population) AS 全国,

SUM(CASE WHEN pref_name = '德岛' THEN population ELSE 0 END) AS 德岛,

SUM(CASE WHEN pref_name = '香川' THEN population ELSE 0 END) AS 香川,

SUM(CASE WHEN pref_name = '爱媛' THEN population ELSE 0 END) AS 爱媛,

SUM(CASE WHEN pref_name = '高知' THEN population ELSE 0 END) AS 高知,

SUM(CASE WHEN pref_name IN ('德岛', '香川', '爱媛', '高知')

THEN population ELSE 0 END) AS 四国

FROM PopTbl2

GROUP BY 性别;


6.1130
1
关注作者
收藏
评论(1)

发表评论
CDA持证人阿涛哥
2022-09-14

有图有文,文字较多的精华帖子,赞

0.0530 1 0 回复