单独行上带条件的mysql求和

单独行上带条件的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 = '

我有一个包含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 = '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
    。谢谢!正是我要找的!