SQL-根据其他列中的特定条件查询SUM

马修

我有一个问题,我需要根据不同列中的条件对美元进行分类汇总。例如,可以通过多种方式对客户进行分类,并且在类别中,唯一重要的是HIT。如果客户至少有一行包含HIT的行,即使没有特定行,也应始终将其归类为HIT(示例(第9行)。如您在我的数据集中看到的,客户A的行均都是HIT如果客户A至少有一个行是HIT,则所有美元都应归类为HITS美元;由于其他客户都没有HIT类别,因此他们所有的美元都将变成NOT。

CLIENT  DOLLARS CATEGORY 
A   12434   HIT 
B   212 NONE 
C   21  NONE 
D   1231    NONE
B   784 NONE 
A   43577   HIT 
D   64  NONE 
A   123 NONE 
D   12  NONE 
A   53  NONE
A   10  NONE

我正在尝试将其构建到CASE中。

SELECT CASE
WHEN category = 'HIT' THEN 'HITS'
WHEN category <> 'HIT' THEN 'NOT'
ELSE 'OTHER' END AS 'RESULT'
SUM(dollars) AS Dollars
FROM table 1
GROUP BY 'RESULT'

显然,当类别为NONE时,这不会为客户A收取HIT Dollars。任何帮助将不胜感激。

谢谢!

Boisvert

您可以通过列出命中客户的子查询将表加入表中:

select (case when (hits.client is null)
             then 0
             else 1
        end) as hit,
       sum(dollars) as Dollars
from t
left outer join ( select distinct client
                  from t
                  where category = 'HIT' ) hits
on t.client = hits.client
group by hit;

SQL提琴:http ://sqlfiddle.com/#!9/ 8d403e/7/0

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对于sql中的特定条件,同一列中的数据总和如何计算?

T-SQL查询(根据特定条件分析表中的连续行)

如果其他条件使用sql查询

在Postgresql上的SQL查询中特定条件下的列值递增

根据SQL Server中的其他列条件找出一列的最大值和最小值

SQL查询-当表中的其他列具有特定值时用于分隔列的行

根据其他单元格的值将SQL查询的结果粘贴到特定的单元格中

SQL-根据特定条件重新分配值

如何根据特定条件在SQL中选择不同的行?

SQL查询根据不同的情况将值分配给其他行中具有空值的列

SQL Server:根据其他2列中的条件更新boolean列

SQL查询以获取在特定条件下具有其他列的重复列值

动态查询符合特定条件的所有SQL表

根据其他列中的特定条件选择数据行

SQL查询根据条件减去特定行

SQL-POSTGRESQL:根据特定条件对表进行排序

根据SQL Server中的特定条件对行进行分组

根据特定金额和其他条件雇用最多员工(SQL查询)

针对特定条件按条件顺序排序的SQL查询

SQL查询返回行数,直到满足特定条件为止

在SQL Server 2014下根据特定条件合并列

SQL查询从多值列中提取数据,但前提是它满足特定条件

如何根据 SQL 查询中其他聚合列的日期获取最后一条记录

SQL 列是否可以根据其他表中的条件自动更新?

使用 Power BI 根据其他列中的特定条件创建特定列(标题和标题中的数据)

Sql查询根据特定列条件查找作业和评分

如何根据其他列值 SQL SUM() 列

具有特定条件的最长连胜的 SQL 查询

根据 SQL Server 2014 中 XML 中的特定条件对多个节点值求和