mysql多行合併成一行_SQL - 多行資料合併為一行
阿新 • • 發佈:2020-12-10
技術標籤:mysql多行合併成一行pandas多行合併一行sas sql 讀取最後一行資料
【題目描述】
下表展示的是某班級同學各個科目的成績,每一行資料表示一位同學某一科目的成績,要求將每位同學各個科目的成績儲存為一行展示:
【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 學號, 姓名;
【解析】
SQL實現的巧妙之處在於,巧妙使用max這種聚合函式,避免了分數字段不在group by中,直接select報錯的問題。