我有下表:
type | amount
pine | 10
cypress | 40
gold | 30
sylver | 25
我想在一个案例中对其进行分类,合并和求和:
SELECT CASE WHEN (type == 'pine' OR type == 'cypress') then 'wood' end, from materials;
我会骗你的:
wood | 50
gold | 30
silver | 25
我虽然案例会合并结果,但显然不是这样,我正在尝试使用SUM
,但没有成功。
答案 0 :(得分:1)
您可以像这样使用CASE语句,但您也必须稍后进行分组才能获得总值。试试这个:
SELECT
(CASE WHEN type = 'pine' OR type = 'cypress' THEN 'wood' ELSE type END) AS type,
SUM(amount) AS total
FROM myTable
GROUP BY type;
您的个案陈述中没有ELSE
。你应该包括这个,因为看起来如果它不是松树或柏树,那么你想要选择那种材料已经存在的类型。
答案 1 :(得分:0)
试试这个:
SELECT CASE WHEN (type == 'pine' OR type == 'cypress') then 'wood' end as MacroType, count(*) from materials group by MacroType;