mysql行轉列 問題 SUM(IF(條件,列值,0))

mysql經典問題,將行轉爲列。

原表

sum(if(條件,列值,0))語法用例:

select name,sum(if(subject="語文",score,0)) as “語文” from grade GROUP BY name

if中第一個參數爲條件,符合條件的內容纔會將第二個參數相加,不符合的內容將第三個參數相加。

第二個參數爲要相加的參數,可以用常量,也可以用字段值。

第三個參數爲條件爲假時相加的值,通常設爲0.

爲了將行轉爲列(這種操作一般用於統計),可使用如下語句:

select name,sum(if(subject="語文",score,0)) as “語文”,
sum(if(subject="數學",score,0)) as “數學”,sum(if(subject="英語",score,0)) as “英語”
from grade GROUP BY name

結果: 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章