单独行上带条件的mysql求和
我有一个包含3个字段的表(与问题相关)。一个字段是数字字段,另两个字段是基于文本的内容。我希望得到数值字段的和,如下所示:单独行上带条件的mysql求和,mysql,Mysql,我有一个包含3个字段的表(与问题相关)。一个字段是数字字段,另两个字段是基于文本的内容。我希望得到数值字段的和,如下所示: 按字段A分组 如果字段B等于X,则添加 如果字段B等于Y,则减去 ABC,X,25 ABC,X,15 ABC,Y,10 DEF,X,20 DEF,Y,5 上述数据将返回: ABC, 30 DEF, 15 理想情况下,我的查询将生成以下等价项: SELECT fieldA, SUM(fieldC) AS sum1 FROM my_table WHERE fieldB = '
ABC,X,15
ABC,Y,10
DEF,X,20
DEF,Y,5
ABC, 30
DEF, 15
理想情况下,我的查询将生成以下等价项:
SELECT fieldA, SUM(fieldC) AS sum1 FROM my_table WHERE fieldB = 'X' GROUP BY fieldA
SELECT fieldA, SUM(fieldC) AS sum2 FROM my_table WHERE fieldB = 'Y' GROUP BY fieldA
RESULT = sum1 - sum2
如何在单个查询中完成此操作?类似的操作应该可以:
SELECT
FieldA,
SUM(CASE WHEN FieldB = 'X' THEN FieldC ELSE -FieldC END) AS Result
FROM my_table
GROUP BY FieldA
使用
CASE
如果字段为Y
,则将FieldB
乘以-1
。谢谢!正是我要找的!