如何构建该查询(总和,分组)

时间:2013-06-23 12:02:03

标签: sql group-by sum

我有下表

 #   amount   type
 1     10      0
 1     10      0
 1     5       1
 1     5       1
 2     10      0
 2     10      0
 2     5       1
 2     5       1

其中0表示现金,1表示类型列中的信用

问题是找到每个ID的现金使用和信用惯例以及总金额。

我正在寻找获得以下结果的查询

 #   cash credit total
 1    20    10    30 
 2    20    10    30

如果有可能,我想使用一个查询

感谢

3 个答案:

答案 0 :(得分:4)

SELECT id, 
SUM(CASE WHEN type = 0 THEN amount ELSE 0 END) as "cash",
SUM(CASE WHEN type = 1 THEN amount ELSE 0 END) as "credit", 
SUM(amount) as "total"
FROM your_table
GROUP BY id

答案 1 :(得分:2)

SELECT
  num,
  SUM(CASE WHEN type=0 THEN amount END) cash,
  SUM(CASE WHEN type=1 THEN amount END) credit,
  SUM(amount) total
FROM
  yourtable
GROUP BY num

答案 2 :(得分:0)

select id,
       sum(amount) as "total",
       CASE WHEN type = 0 THEN amount ELSE 0 END as "cash",
       CASE WHEN type = 1 THEN amount ELSE 0 END as "credit",
  from table
 group by id