Case When Distinct 值然后求和另一个值?

Case When Distinct value then sum another value?(Case When Distinct 值然后求和另一个值?)
本文介绍了Case When Distinct 值然后求和另一个值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

小猪退缩了我昨天提出的另一个问题.

Piggy backing off another question I had yesterday.

我想知道如何计算 amt > 1500 的不同记录数.根据我的数据连接方式,我可以多次反映相同的 PKey AcctNo,因为我的完整外部连接到另一个具有多个事务记录的表.

I was wondering how I would go about counting the distinct number of records that have an amt > 1500. The way my data is joined, I could have the same PKey AcctNo reflected more than one time because my full outer joined to another table that has multiple transactional records.

(Case When AcctNo_PKey = distinct then sum(case when amount > 1500 then 1 else 0 end)
 else 0) end as GT1500

这是我当前的代码,可产生所需的结果.我

this my current code that produces a desired result. I

SELECT sum(case when amount > 1500 then 1 else 0 end) as GT1500
     , sum(case when amount < 1500 then 1 else 0 end) as LT1500
    , DATEPART(Year, amount.Date) Deposit_Year
    , DATEPART(QUARTER, amount.Date) Deposit_Qtr 
From account 
full outer JOIN amount ON account.AcctNo = amount.AcctNo
group by DATEPART(Year, amount.Date)
    , DATEPART(QUARTER, amount.Date)

也许我的整个方法都是错误的...idk

Or maybe my entire approach is wrong...idk

推荐答案

您可以对 CASE 表达式的输出使用 COUNT(DISTINCT ).例如,要计算具有 [amount] [amount] 的不同 AcctNo_Pkey 的数量.聚合结果中某处的 1500 行,您可以使用它:

You can use COUNT(DISTINCT ) on the output of a CASE expression. For example, to count the number of distinct AcctNo_Pkeys that have an [amount] < 1500 row somewhere in the aggregated result, you could use this:

COUNT(DISTINCT CASE WHEN [amount] < 1500 THEN AcctNo_PKey END)

您可以在在这个最小的 sqlfiddle 示例

这篇关于Case When Distinct 值然后求和另一个值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)