1. 程式人生 > 其它 >mysql多行合併成一行_SQL - 多行資料合併為一行

mysql多行合併成一行_SQL - 多行資料合併為一行

技術標籤:mysql多行合併成一行pandas多行合併一行sas sql 讀取最後一行資料

【題目描述】

下表展示的是某班級同學各個科目的成績,每一行資料表示一位同學某一科目的成績,要求將每位同學各個科目的成績儲存為一行展示:

03774221e36bfebcb74fc884bdb6f5ba.png
班級成績表

【SQL實現邏輯】

-- 將每位學生的各科目成績儲存到一行資料,示例: 1 張三 數學分數 語文分數 英語分數

SELECT
	score_new.學號,
	score_new.姓名,
	max(if(score_new.科目 like '%數學%', score_new.分數, null)) as 數學分數,
	max(if(score_new.科目 like '%語文%', score_new.分數, null)) as 語文分數,
	max(if(score_new.科目 like '%英語%', score_new.分數, null)) as 英語分數
FROM
	score_new
GROUP BY
	學號,
	姓名;

318efa5e86d3b33161404ee099b413cf.png
轉換後的結果表

【解析】

SQL實現的巧妙之處在於,巧妙使用max這種聚合函式,避免了分數字段不在group by中,直接select報錯的問題。