Mysql练习
-- 12.23 根据客单类别表统计出每个省份每个城市的低客单数和高客单数,
-- 如果某城市无低客单记录或高客单记录,其统计数为0
T1223
+--------+--------+--------+-----------+
| 姓名 | 省份 | 城市 | 类别 |
+--------+--------+--------+-----------+
| 张三 | 广东 | 广州 | 低客单 |
| 李四 | 广东 | 广州 | 高客单 |
| 王五 | 湖南 | 岳阳 | 高客单 |
| 赵六 | 湖南 | 长沙 | 低客单 |
| 钱七 | 广东 | 广州 | 高客单 |
| 孙九 | 湖南 | 长沙 | 低客单 |
+--------+--------+--------+-----------+
结果:
+--------+--------+--------------+--------------+
| 省份 | 城市 | 低客单数 | 高客单数 |
+--------+--------+--------------+--------------+
| 广东 | 广州 | 1 | 2 |
| 湖南 | 岳阳 | 0 | 1 |
| 湖南 | 长沙 | 2 | 0 |
+--------+--------+--------------+--------------+
SELECT t.省份,t.城市,
SUM(CASE WHEN t.类别 = '低客单' THEN 1 ELSE 0 END) AS '低客单数',
SUM(CASE WHEN t.类别 = '高客单' THEN 1 ELSE 0 END) AS '高客单数'
FROM T1223 t
GROUP BY t.省份,t.城市;