我有源表,我想根据特定值对数量求和,并在按 id 分组时显示每个值的总和。
animal_id oh co gender
10 5 1 M
20 10 5 F
10 15 2 F
30 5 0 C
10 5 4 M
20 10 0 F
我需要一个输出
animal_id Moh Mco Foh Fco Coh Cco
10 10 5 15 2 0 0
20 0 0 20 5 0 0
30 0 0 0 0 5 0
每列将显示每个性别的总和,每行将按动物 ID 分组。
我尝试使用 CASE 就像 MSSQL 一样,但它没有按每个性别求和。思考 PIVOT 但我对它不是很熟悉。我不知所措...
尝试以下操作:
SELECT animal_id,
SUM(IF(gender='M', oh, 0)) AS Moh, SUM(IF(gender='M', co, 0)) AS Mco,
SUM(IF(gender='F', oh, 0)) AS Foh, SUM(IF(gender='F', co, 0)) AS Fco,
SUM(IF(gender='C', oh, 0)) AS Coh, SUM(IF(gender='C', co, 0)) AS Cco
FROM anim_table
GROUP BY animal_id;
所以关键概念是结合SUM()
与IF()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句