MySQL是一個流行的關系型數據庫管理系統,它可以幫助我們存儲、管理和分析數據。在數據分析中,我們經常需要使用CASE WHEN語句來處理數據,根據不同的條件進行分組、計算等操作。本文將詳細介紹MySQL多個CASE WHEN語句的實用案例,幫助讀者更好地理解和應用這一功能。
一、什么是CASE WHEN語句
CASE WHEN語句是MySQL中的一種條件語句,用于根據指定的條件進行分組、計算等操作。它的基本語法如下:
dition1 THEN result1dition2 THEN result2
...
ELSE result
dition是條件表達式,result是對應條件的返回結果,ELSE語句是可選的,用于指定所有條件都不滿足時的默認返回結果。
二、多個CASE WHEN語句實現數據分析
1. 求和計算
假設我們有一個訂單表,包含訂單編號、訂單日期、訂單金額等字段。我們想要按照不同的日期范圍統計訂單金額,可以使用多個CASE WHEN語句來實現,如下所示:
SELECT ount ELSE 0 END) AS '2020年1月訂單金額',ount ELSE 0 END) AS '2020年2月訂單金額',ount ELSE 0 END) AS '2020年3月訂單金額'
FROM orders;
這段代碼的意思是,對于每個訂單,如果它的日期在指定的范圍內,則將訂單金額累加到對應的月份中,否則不計入統計。最后,我們可以得到每個月的訂單金額總和。
2. 分組計算
除了求和計算,我們還可以使用多個CASE WHEN語句進行分組計算。例如,我們有一個學生表,包含學生編號、學生姓名、成績等字段,我們想要按照成績范圍統計每個分數段的學生人數,可以使用如下代碼:
SELECT
COUNT(CASE WHEN score BETWEEN 0 AND 59 THEN 1 END) AS '不及格',
COUNT(CASE WHEN score BETWEEN 60 AND 79 THEN 1 END) AS '及格',
COUNT(CASE WHEN score BETWEEN 80 AND 89 THEN 1 END) AS '良好',
COUNT(CASE WHEN score BETWEEN 90 AND 100 THEN 1 END) AS '優秀'ts;
這段代碼的意思是,對于每個學生,如果它的成績在指定的范圍內,則將其計入對應的分數段中,否則不計入統計。最后,我們可以得到每個分數段的學生人數。
本文介紹了MySQL多個CASE WHEN語句的實用案例,包括求和計算和分組計算。通過這些案例,讀者可以更好地理解和應用這一功能,幫助我們更加高效地進行數據分析。