繁体   English   中英

如何在sql中对多个列进行分组

[英]how to group multiple columns in sql

我的桌子如下所示,

ID  EMP_ID  AMOUNT  MODE
1   E01     1000    CASH
2   E01     2000    CASH
3   E01     3000    DD
4   E01     1000    DD
5   E02     1500    CASH
6   E02     2000    DD

我想总结每个Emp支付的总金额以及基于MODE支付的金额总和。 例如,我希望结果为'7000'为totalAmount,'3000'为现金,'4000'为DD为E01。

我尝试了以下查询,但无法获得上述结果。

select sum(AMOUNT) as totalAmount from fees where EMP_ID = 'E01' group by mop

任何人都可以建议查询以获得上述结果?

编辑:

我想得到如下表格,

    ID  EMP_ID  TOTAL_AMOUNT    CASH_AMOUNT     DD_AMOUNT
    1   E01     7000            3000            4000
    2   E02     3500            1500            2000

用例SUM sum / dd:

select EMP_ID,
       sum(AMOUNT) as totalAmount,
       sum(case when MODE = 'CASH' then AMOUNT else 0 end) as CASH_AMOUNT,
       sum(case when MODE = 'DD' then AMOUNT else 0 end) as DD_AMOUNT
from fees
group by EMP_ID

将SUM函数与IF函数结合使用:

   SELECT EMP_ID,
          SUM(amount) AS TOTA_AMOUNT, 
          SUM(IF(`mode` = 'CASH', amount, 0)) AS CASH_AMOUNT,
          SUM(IF(`mode` = 'DD', amount, 0)) AS DD_AMOUNT
     FROM fees
 GROUP BY emp_id

SQL小提琴: http ://www.sqlfiddle.com/#!9 / 94a55 / 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM