SQL合并不同行的结果,由一个案例组合而成

时间:2015-03-10 14:26:43

标签: mysql select sum

我有下表:

   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,但没有成功。

2 个答案:

答案 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;