case when then else end

给定一张表


国家 人口
中国 600
印度 600
美国 200
韩国 600
澳大利亚 700
英国 400

求这样的结果集:

人口
亚洲 3600
北美洲 400
大洋洲 1400
欧洲 800

--

建表sql:

CREATE TABLE country (
    name VARCHAR(255) PRIMARY KEY,
    population INT
);

INSERT INTO country (NAME, population)
VALUES
    ('中国', 600),
    ('印度', 600),
    ('美国', 200),
    ('韩国', 600),
    ('澳大利亚', 700),
    ('英国', 400);

sql:

SELECT sum(c.population) as '人口',
CASE c.`name`
when '中国' then '亚洲'
when '印度' then '亚洲'
when '美国' then '北美洲'
when '韩国' then '亚洲'
when '澳大利亚' then '大洋洲'
when '英国' then '欧洲'
else '其他'
end  as '州'
from country c
GROUP BY 
CASE c.`name`
when '中国' then '亚洲'
when '印度' then '亚洲'
when '美国' then '北美洲'
when '韩国' then '亚洲'
when '澳大利亚' then '大洋洲'
when '英国' then '欧洲'
else '其他' end;

结果:


case when then else end_第1张图片

你可能感兴趣的:(case when then else end)