如何在Postgres的同一列中创建两列以求和?

皮查特金

我有一个包含以下各列的表:

Type | Date | Amount

当Type的值类似于'E'时,我使用SUM函数将值添加到“金额”列中(作为SUM1)。这是我的查询:

select 
  to_char("Date", 'Mon') as mon,
  extract(year from "Date") as yyyy,
  sum("Amount") as SUM1 
from "Transactions"
where "Type" LIKE 'E%' and "Date" between '01/01/2015' and '08/31/2015'
group by 1,2
order by yyyy, mon;

结果是这样的行:

mon | yyyy | SUM1

但是,我想做的是还要显示另一个总和列(SUM2),以显示“金额”中添加的值的总和,其中“类型”类似于“ P”,因此显示类似以下的行:

mon | yyyy | SUM1 | SUM2
萨米·库莫宁(Sami Kuhmonen)

取决于您的PostgreSQL版本。对于较老的,您可以使用以下条件求和CASE

select to_char("Date", 'Mon') as mon,
extract(year from "Date") as yyyy,
sum(CASE WHEN "Type" LIKE 'E%' then "Amount" ELSE 0 END) as SUM1,
sum(CASE WHEN "Type" LIKE 'P%' then "Amount" ELSE 0 END) as SUM2
from "Transactions"
where "Date" between '01/01/2015' and '08/31/2015'
group by 1,2
order by yyyy, mon;

或者,如果您使用的是PostgreSQL 9.4或更高版本,则可以使用更好的FILTER语法:

select to_char("Date", 'Mon') as mon,
extract(year from "Date") as yyyy,
sum("Amount") FILTER (WHERE "Type" LIKE 'E%') as SUM1,
sum("Amount") FILTER (WHERE "Type" LIKE 'P%') as SUM2
from "Transactions"
where "Date" between '01/01/2015' and '08/31/2015'
group by 1,2
order by yyyy, mon;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中对不同数据框的同一列求和

来自分类Dev

如何在同一表MySQL中创建一列的副本

来自分类Dev

您如何对一列中的连续值求和并用这些求和值创建新列?

来自分类Dev

如何在同一列中编写用于匹配两个条件的SQL查询?

来自分类Dev

如何在mysql中两次在1个表中选择同一列

来自分类Dev

如何在 MySQL 中获取同一列的两个不同值

来自分类Dev

如何在SQL中的一个公共列中以不同的条件两次使用同一列

来自分类Dev

如何将1个concat列与同一列中的多个值求和

来自分类Dev

如何在一列中打印两列的总和

来自分类Dev

如何基于另外两列的键求和一列

来自分类Dev

如何在daru中多次汇总同一列

来自分类Dev

如何在选择中过滤另一列时依靠同一列

来自分类Dev

如何在postgres中找到与同一列相同的列的最大值和值?

来自分类Dev

如何对基于另一列的同一列的多个单元格求和并在另一列中显示?

来自分类Dev

如何对qlickview中的三列求和(表1中的两列和表2中的一列)

来自分类Dev

如何在关系表的同一列中获取具有两个结果的项目

来自分类Dev

如何在SQL查询中创建一列的SUM?

来自分类Dev

如何创建基于同一行中另一列的值命名的新列?

来自分类Dev

如何基于单独的日期列划分同一列中的两个值

来自分类Dev

如何对这个动态创建的表中的每一列求和,如 excel

来自分类Dev

在 SSRS 报告中创建一列以根据前一列的条件对值求和

来自分类Dev

将同一列中的两列合并为一列

来自分类Dev

如何在SQL的同一列中比较两个日期

来自分类Dev

如何在两个条件下为同一列选择使用联接

来自分类Dev

当列值相同时,如何组合 postgres 中的行,并根据组合的行对另一列求和?

来自分类Dev

如何在Spark / Scala中求和数据框的一列的值

来自分类Dev

如何在数据框中添加一列以对行求和

来自分类Dev

如何使用Sequel ORM对同一张表中的一列求和以产生三个不同的聚合?

来自分类Dev

如何两次加入同一列?

Related 相关文章

  1. 1

    如何在R中对不同数据框的同一列求和

  2. 2

    如何在同一表MySQL中创建一列的副本

  3. 3

    您如何对一列中的连续值求和并用这些求和值创建新列?

  4. 4

    如何在同一列中编写用于匹配两个条件的SQL查询?

  5. 5

    如何在mysql中两次在1个表中选择同一列

  6. 6

    如何在 MySQL 中获取同一列的两个不同值

  7. 7

    如何在SQL中的一个公共列中以不同的条件两次使用同一列

  8. 8

    如何将1个concat列与同一列中的多个值求和

  9. 9

    如何在一列中打印两列的总和

  10. 10

    如何基于另外两列的键求和一列

  11. 11

    如何在daru中多次汇总同一列

  12. 12

    如何在选择中过滤另一列时依靠同一列

  13. 13

    如何在postgres中找到与同一列相同的列的最大值和值?

  14. 14

    如何对基于另一列的同一列的多个单元格求和并在另一列中显示?

  15. 15

    如何对qlickview中的三列求和(表1中的两列和表2中的一列)

  16. 16

    如何在关系表的同一列中获取具有两个结果的项目

  17. 17

    如何在SQL查询中创建一列的SUM?

  18. 18

    如何创建基于同一行中另一列的值命名的新列?

  19. 19

    如何基于单独的日期列划分同一列中的两个值

  20. 20

    如何对这个动态创建的表中的每一列求和,如 excel

  21. 21

    在 SSRS 报告中创建一列以根据前一列的条件对值求和

  22. 22

    将同一列中的两列合并为一列

  23. 23

    如何在SQL的同一列中比较两个日期

  24. 24

    如何在两个条件下为同一列选择使用联接

  25. 25

    当列值相同时,如何组合 postgres 中的行,并根据组合的行对另一列求和?

  26. 26

    如何在Spark / Scala中求和数据框的一列的值

  27. 27

    如何在数据框中添加一列以对行求和

  28. 28

    如何使用Sequel ORM对同一张表中的一列求和以产生三个不同的聚合?

  29. 29

    如何两次加入同一列?

热门标签

归档