本文為您介紹,如何使用SQL實現多行資料合併為一行資料。
樣本資料
class | gender | name |
1 | M | LiLei |
1 | F | HanMM |
1 | M | Jim |
1 | F | HanMM |
2 | F | Kate |
2 | M | Peter |
使用樣本
樣本1:將class相同的name合并為一行,並對name去重。去重操作可通過嵌套子查詢實現。
SELECT class, wm_concat(distinct ',', name) as names FROM students GROUP BY class;
說明wm_concat
是字元拼接函數,詳情請參見WM_CONCAT。輸出結果如下。
class
names
1
LiLei,HanMM,Jim
2
Kate,Peter
樣本2:統計不同class對應的男女人數。
SELECT class ,SUM(CASE WHEN gender = 'M' THEN 1 ELSE 0 END) AS cnt_m ,SUM(CASE WHEN gender = 'F' THEN 1 ELSE 0 END) AS cnt_f FROM students GROUP BY class;
輸出結果如下。
class
cnt_m
cnt_f
1
2
2
2
1
1