MySQL中的CASE WHEN語句常常用于SELECT查詢中,它允許根據不同的條件執行不同的操作,非常靈活。在使用SUM函數時,我們可以結合CASE WHEN語句對不同的值進行求和。
SELECT SUM(CASE WHEN column_name = 'value1' THEN 1 ELSE 0 END) as num1, SUM(CASE WHEN column_name = 'value2' THEN 1 ELSE 0 END) as num2 FROM table_name;
在上面的語句中,如果列column_name的值為'value1',則返回1,否則返回0,然后基于這個結果進行求和,得到num1的值;同理,如果列column_name的值為'value2',則返回1,否則返回0,求和得到num2的值。
除了返回1和0外,我們還可以根據條件返回不同的值進行求和。例如,以下查詢可以計算不同年齡段的人數:
SELECT SUM(CASE WHEN age BETWEEN 0 AND 20 THEN 1 ELSE 0 END) as num1, SUM(CASE WHEN age BETWEEN 20 AND 40 THEN 1 ELSE 0 END) as num2, SUM(CASE WHEN age >40 THEN 1 ELSE 0 END) as num3 FROM table_name;
在上面的語句中,如果age的值在0到20之間,則返回1,否則返回0,求和得到num1的值;同理,如果age的值在20到40之間,則返回1,求和得到num2的值;如果age的值大于40,則返回1,求和得到num3的值。通過這種方式,我們可以方便地計算出不同年齡段的人數。