記錄一個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;
相關文章
- pl/sql記錄表(一)SQL
- 記錄一個sql最佳化的全過程.txtSQL
- SQL Server 資料庫基本記錄(一)SQLServer資料庫
- 記錄一個行列轉換
- 記錄一個Oracle引數Oracle
- 記錄一個小問題
- 記一個SQL優化案例SQL優化
- 使用一session能否記錄一個集合???Session
- 簡單記錄幾個有用的sql查詢SQL
- (一)《SQL進階教程》學習記錄--CASESQL
- SQL 分組排序取最新一條記錄SQL排序
- 記錄一個利用資料庫引擎格式化異常sql的思路資料庫SQL
- [記錄]30個Oracle SQL優化規則詳解OracleSQL優化
- sql刪除重複記錄只保留一條SQL
- Laravel sql 日誌記錄LaravelSQL
- SQL優化工作記錄SQL優化
- sql隨機抽取記錄SQL隨機
- PL/SQL開發記錄SQL
- pl/sql記錄型別SQL型別
- 記錄一個前端架構的想法前端架構
- 記錄一個防止DDL的指令碼指令碼
- 記錄一個演算法網站演算法網站
- sql根據多個欄位查詢重複記錄SQL
- 一次SQL隱碼攻擊實戰記錄SQL
- 各個資料庫的取一表前N條記錄不同SQL寫法資料庫SQL
- sql_update_僅更新高中學段科目僅一個記錄為'Y'_for_stageSQL
- SQL Server 2008記錄頭第一個位元組各部分含義SQLServer
- 調整sql臨時記錄SQL
- 常用sql 全記錄(新增中)SQL
- 記錄 sql 查詢日誌SQL
- SQL重複記錄查詢SQL
- sql取前幾條記錄SQL
- [新手開發記錄] 新建一個網站網站
- 【記錄】如何造一個vite外掛(2)Vite
- 記錄一個 NPM 包的開發 -- smmsNPM
- 抓取某一個網站整站的記錄網站
- 記錄一次驚心動魄的sql去重SQL
- SQL 獲取插入後的最新一條記錄ID號SQL