最近在找工作,面试官说我mysql能力一般,所以加强练习
1.有country表如下,其中the_name代表国家名,sex代表性别(1-男,2-女),population代表人数
建表语句如下:
CREATE TABLE country (
the_name VARCHAR(20) NOT NULL COMMENT '国家名称',
sex INT NOT NULL COMMENT '性别',
population BIGINT(12) NOT NULL COMMENT'人数'
)COMMENT = '国家表'
现在需要查找列名为 国家,男,女,形式如下图,请写出sql语句
一番搜索后,写出sql语句如下:
SELECT the_name,
SUM(CASE WHEN sex=1 THEN population ELSE 0 END) AS '男',
SUM(CASE WHEN sex=2 THEN population ELSE 0 END) AS '女'
FROM country
GROUP BY the_name
ps:这里要注意的是1. case when [条件] then [结果]
when [条件] then [结果]
else [结果] end