mysql行列轉換詳解

hello星河發表於2021-01-03

面試老是會考到這樣一題:
將下面表中的語文,英語,數學作為行,分數總和作為結果,人名作為列查詢展示出來

表結構:
在這裡插入圖片描述
即轉換為這樣的表結構:
在這裡插入圖片描述
轉換語句:

SELECT
     t.name ,
     SUM(
          IF (
               t.subject = '語文',
               t.results,
               0
          )
     ) AS '語文',
     SUM(
          IF (
               t.subject = '數學',
               t.results,
               0
          )
     ) as '數學',
     SUM(
          IF (
               t.subject = '英語',
               t.results,
               0
          )
     ) as '英語'
FROM
     t_subject t
GROUP BY (t.name);

相關文章