代码之家  ›  专栏  ›  技术社区  ›  Rico Strydom

SQL:仅对不同的值求和

  •  0
  • Rico Strydom  · 技术社区  · 4 年前

    FEP\U印度卢比 FEP费用 FEP金额
    多塞特费耶夫
    00015505 多塞特费耶夫
    00015504 多塞特费耶夫
    无效的
    无效的 无效的
    00015505 30
    00015505 30
    00015505 多塞特费耶夫 30
    无效的
    30
    多塞特费耶夫
    00015504
    00015504 多塞特费耶夫 175

    SUM 仅限FEP\ U INR(价值未知)和FEP\ U账户(价值已知)的不同组合的FEP\ U金额。 我试过了 CASE WHEN FEP_FEE = 'DOSETFEEOV' THEN SUM(FEP_AMT) OVER () END CASE WHEN FEP_FEE = 'DOSETFEEOV' THEN SUM(FEP_AMT) OVER (PARTITION BY FEP_INR, FEP_FEE) END 但这是所有记录的总和,其中FEP\u FEE='DOSETFEEOV',这不是我想要的。

    最后的总和应该是205(30+175)。

    希望有人能帮忙?

    1 回复  |  直到 4 年前
        1
  •  0
  •   Zaynul Abadin Tuhin    4 年前

    select FEP_INR,FEP_FEE, sum(FEP_AMT) from
    (
     select distinct FEP_INR,FEP_FEE, FEP_AMT 
     from table_name
     where FEP_AMT is not null
    ) as a group by FEP_INR,FEP_FEE
    
        2
  •  0
  •   Gordon Linoff    4 年前

    您可能可以在查询的前面修复您的问题。但根据你的描述:

    select sum(fep_amt)
    from (select distinct fep_inr, fep_fee, fep_amt
          from t
         ) t;