don*_*iti 6 sql t-sql sql-server sql-server-2008
小猪支持我昨天的另一个问题.
我想知道如何计算amt> 1500的不同记录数.我的数据连接的方式,我可以有相同的PKey AcctNo不止一次反映,因为我的全外部加入了另一个表多个交易记录.
(Case When AcctNo_PKey = distinct then sum(case when amount > 1500 then 1 else 0 end)
else 0) end as GT1500
Run Code Online (Sandbox Code Playgroud)
这是我当前生成所需结果的代码.一世
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)
Run Code Online (Sandbox Code Playgroud)
或许我的整个方法都错了...... idk
Dan*_*Dan 11
您可以COUNT(DISTINCT )在CASE表达式的输出上使用.例如,要计算在聚合结果中某处AcctNo_Pkey有[amount] < 1500一行的不同s 的数量,您可以使用:
COUNT(DISTINCT CASE WHEN [amount] < 1500 THEN AcctNo_PKey END)
Run Code Online (Sandbox Code Playgroud)
您可以在这个最小的sqlfiddle示例中看到它
| 归档时间: |
|
| 查看次数: |
8762 次 |
| 最近记录: |