其中sex為1表示男性,2表示女性,population是地區人口。
要想獲得下面格式的資料:
首先,目的資料明顯是按照性别分組的,但是要轉成漢字“男”和“女”,是以使用CASE子句來轉義sex列的内容:
CASE
WHEN sex = THEN '男'
ELSE '女'
END AS '性别'
然後根據轉義的内容進行分組,因為CASE子句可以存在于GROUP BY子句中,是以:
GROUP BY CASE
WHEN sex = THEN '男'
ELSE '女'
END
表分組之後是這樣的:
然後就可以根據分組後的資料進行聚合函數。
SELECT CASE
WHEN sex = THEN '男'
ELSE '女'
END AS '性别', SUM(population) AS '全國', MAX(CASE
WHEN pref_name = '德島' THEN population
ELSE
END) AS '德島'
, MAX(CASE
WHEN pref_name = '香川' THEN population
ELSE
END) AS '香川', MAX(CASE
WHEN pref_name = '愛媛' THEN population
ELSE
END) AS '愛媛'
, MAX(CASE
WHEN pref_name = '高知' THEN population
ELSE
END) AS '高知', SUM(CASE
WHEN pref_name IN ('德島', '香川', '愛媛', '高知') THEN population
ELSE
END) AS '四國(再揭)'
FROM poptbl2
GROUP BY CASE
WHEN sex = THEN '男'
ELSE '女'
END;