記錄一個sql
其中sex為1表示男性,2表示女性,population是地區人口。
要想獲得下面格式的資料:
首先,目的資料明顯是按照性別分組的,但是要轉成漢字“男”和“女”,所以使用CASE子句來轉義sex列的內容:
CASE
WHEN sex = 1 THEN '男'
ELSE '女'
END AS '性別'
然後根據轉義的內容進行分組,因為CASE子句可以存在於GROUP BY子句中,所以:
GROUP BY CASE
WHEN sex = 1 THEN '男'
ELSE '女'
END
表分組之後是這樣的:
然後就可以根據分組後的資料進行聚合函式。
SELECT CASE
WHEN sex = 1 THEN '男'
ELSE '女'
END AS '性別', SUM(population) AS '全國', MAX(CASE
WHEN pref_name = '德島' THEN population
ELSE 0
END) AS '德島'
, MAX(CASE
WHEN pref_name = '香川' THEN population
ELSE 0
END) AS '香川', MAX(CASE
WHEN pref_name = '愛媛' THEN population
ELSE 0
END) AS '愛媛'
, MAX(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 CASE
WHEN sex = 1 THEN '男'
ELSE '女'
END;
相關文章
- SQL Server 資料庫基本記錄(一)SQLServer資料庫
- 記錄一個問題
- (一)《SQL進階教程》學習記錄--CASESQL
- 記錄一個利用資料庫引擎格式化異常sql的思路資料庫SQL
- SQL優化工作記錄SQL優化
- Laravel sql 日誌記錄LaravelSQL
- 記錄一個小問題
- 記錄一個行列轉換
- sql刪除重複記錄只保留一條SQL
- SQL:查詢每個類別最新的5條記錄SQL
- sql根據多個欄位查詢重複記錄SQL
- 一次SQL隱碼攻擊實戰記錄SQL
- spring-boot記錄sql探索SpringbootSQL
- 記錄一個批次貼數的vba
- 記錄一個演算法網站演算法網站
- PR一個 composer包過程記錄
- 記錄一個前端架構的想法前端架構
- jsqlparser使用記錄---生成sql語句JSSQL
- 個人記錄
- 記錄一次mybatis log-plugin外掛不列印sqlMyBatisPluginSQL
- 記錄一次SQL函式和優化的問題SQL函式優化
- 記錄一次詭異的拼接sql不生效問題SQL
- 記一個實用的sql查詢語句SQL
- 記錄一個Excel中特殊的VLOOKUP方法Excel
- [新手開發記錄] 新建一個網站網站
- 【記錄】如何造一個vite外掛(2)Vite
- mysql 存在該記錄則更新,不存在則插入記錄的sqlMySql
- SQL Server 資料庫基本記錄(二)SQLServer資料庫
- SQL Server 資料庫基本記錄(三)SQLServer資料庫
- 記一個簡單的sql題:思維擴散SQL
- 個人常用記錄
- 個人BUG記錄
- 記錄一個 gitlab 登入問題解決Gitlab
- 記錄---實現一個支援@的輸入框
- 記錄一個關於變數命名的事情變數
- 記錄一個開源專案排名網站網站
- 記錄開發過程一個路由問題路由
- 記錄一個前端bug的解決過程前端