MySQL條件判斷處理
一、假如我想把salesperson 分成 5組,計算每個銷售分組的業績
首先先將銷售分組
1 SELECT *, 2 CASE 3 WHEN salesperson IN ("丁test","何test","劉test","葉test","夏test") THEN "銷售一組" 4 WHEN salesperson IN ("姚test","崔test","張test","徐test","曹test") THEN "銷售二組" 5 WHEN salesperson IN ("李test","楊test","王test","石test","粟test") THEN "銷售三組" 6 WHEN salesperson IN ("胡test","薛test","談test","鄧test","邱test") THEN "銷售四組" 7 WHEN salesperson IN ("韓test","馬test","魏test") THEN "銷售五組" 8 ELSE NULL END AS 銷售分組 9 FROM test_a03order AS a
根據生成的銷售分組字段進行聚合
1 SELECT 銷售分組,SUM(pay_money) AS 業績 2 FROM ( 3 SELECT *, 4 CASE 5 WHEN salesperson IN ("丁test","何test","劉test","葉test","夏test") THEN "銷售一組" 6 WHEN salesperson IN ("姚test","崔test","張test","徐test","曹test") THEN "銷售二組" 7 WHEN salesperson IN ("李test","楊test","王test","石test","粟test") THEN "銷售三組" 8 WHEN salesperson IN ("胡test","薛test","談test","鄧test","邱test") THEN "銷售四組" 9 WHEN salesperson IN ("韓test","馬test","魏test") THEN "銷售五組" 10 ELSE NULL END AS 銷售分組 11 FROM test_a03order AS a 12 ) AS b 13 GROUP BY 銷售分組
二、我想對城市業績進行分組 金額500以下的分為一組,金額500到1000的一組 1000到4000的一組 4000以上的一組
1 SELECT city,SUM(pay_money) AS 業績, 2 CASE WHEN SUM(pay_money)<=500 THEN "(0000,0500]" 3 WHEN SUM(pay_money)<=1000 THEN "(0500,1000]" 4 WHEN SUM(pay_money)<=4000 THEN "(1000,4000]" 5 ELSE "(4000以上)" END AS "業績區間" 6 FROM test_a03order AS a 7 GROUP BY city 8 ORDER BY SUM(pay_money) DESC