group by 的这个问题大家不知有没有碰到
我们知道我们通常使用的 语句是:
SELECT AREA_ID,NUM
FROM A
WHERE AREA_ID IN (1,2,3,4)
GROUP BY
AREA_ID
字段解释; AREA_ID为 地域代码,NUM为数量
假如查询的结果是
AREA_ID NUM
1 40
2 50
3 60
4 70
而事实上,AREA_ID 为1,2的时候表示 上海,为3,4的时候表示北京
我要得到的结果应该是
地区 NUM
上海 90
北京 130
该怎么办? 是不是需要另外建一个表,然后搞个子查询才能得到我要的结果?
------解决方案--------------------
SELECT (case when AREA_ID in(1,2) then '上海 ' else '北京 ' end),sum(NUM)
FROM A
WHERE AREA_ID IN (1,2,3,4)
GROUP BY
(case when AREA_ID in(1,2) then '上海 ' else '北京 ' end) order by sum(NUM)