对具有不同条件的同一列求和,然后按分组

赫克托·巴多蒂

我试图总结相同column但条件不同的组然后全部按"Cliente"(ID)

当我使用

SELECT Cliente, SUM([Valor Original]) As Emitidos FROM TAB_Documentos WHERE Condição = 0 GROUP BY Cliente

我得到了这个结果,但我需要加入/联合"Baixados", "Devolvidos""Outros"然后它们全部按"Cliente"...

在此处输入图像描述

我试图弄清楚如何加入那个 SQL 字符串......基本上是我需要的,但我需要它们一起......

SELECT Cliente, SUM([Valor Original]) As Emitidos FROM TAB_Documentos WHERE Condição = 0 GROUP BY Cliente
SELECT Cliente, SUM([Valor Original]) As Baixados FROM TAB_Documentos WHERE Condição = 1 GROUP BY Cliente
SELECT Cliente, SUM([Valor Original]) As Devolvidos FROM TAB_Documentos WHERE Condição = 2 GROUP BY Cliente
SELECT Cliente, SUM([Valor Original]) As OutrosFROM TAB_Documentos WHERE Condição = 3 GROUP BY Cliente
马特·贝利

将过滤器放在聚合函数中,而不是使用WHERE子句......

(这通常被称为conditional aggregation。)

SELECT
  Cliente,
  SUM(CASE WHEN Condição = 0 THEN [Valor Original] END) As Emitidos,
  SUM(CASE WHEN Condição = 1 THEN [Valor Original] END) As Baixados,
  SUM(CASE WHEN Condição = 2 THEN [Valor Original] END) As Devolvidos,
  SUM(CASE WHEN Condição = 3 THEN [Valor Original] END) As Outros
FROM
  TAB_Documentos
GROUP BY
  Cliente

但是,SQL 通常更适合规范化数据。例如,最简单的查询实际上是......

SELECT
  Cliente,
  Condição,
  SUM([Valor Original]) AS [Valor]
FROM
  TAB_Documentos
GROUP BY
  Cliente,
  Condição 

虽然这不是您要求的格式,但它更短且更容易在后续 SQL 中重用;这是 SQL 的设计方式。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建直方图,按列分组,然后按R中的另一列求和

SQL对具有不同日期条件的同一列求和

在Pandas Dataframe中按一列排序,然后按另一列分组?

获取具有不同条件的同一列的总和

同一列具有不同条件的多个排序

MySQL按列分组,然后按另一列计数

Excel-按列对行进行分组,然后按另一列进行排序

在同一列上按数字排序然后按字母数字排序

与多列不同,然后按一个分组 - rails, mysql

按另一列分组但具有不同索引时的列总和

选择具有不同别名和不同条件的同一列

Python按一列分组,然后按日期数据类型的另一列中的“月份”分组

计数id,插入,然后按同一表mysql中另一列中的数字范围更新

如何在同一列上基于两个不同条件编写按查询分组返回结果?

查询以选择具有不同值的同一列上的条件

在两个具有不同值的字段上分组,然后按顺序选择特定的值

按一列排序,然后按另一列排序

XSLT:按两次进行分组,首先在同一标签内,然后按2个不同标签进行分组

sql加入具有不同值的同一列

MySQL分区从具有不同键的同一列

求和,然后按 VIEW 中的子句分组

在Rails中同一列具有OR条件的地方

SQL选择具有不同位置的同一列,然后联接并追加到外部查询

从3个不同的表中选择3个不同的列(COUNT),然后按日期分组

选择按日期将同一列分组到不同的列

用两个不同条件的mysql在同一列上求和

对按另一列分组的熊猫数据框列值求和,然后用总和更新行并删除重复项

SQL - 对具有公共 ID 的列求和,然后将总计与另一列合并

如何找出具有多个条件的相同值并将同一列的值放在不同的列中?