case when then else end

2017-08-15  本文已影响0人  竞技等级几点叫你你呢

给定一张表


国家 人口
中国 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;

结果:


上一篇下一篇

猜你喜欢

热点阅读