1
Microsoft SQL Server的多个aggreate功能,我有这样的使用透视
select * from age;
Payor Description ID Amount
---------------------------------
Medical S1 101 200
Medical s1 102 100
Medical S2 201 400
Medical S2 202 450
Medical S3 301 500
我需要在以下格式的数据的数据,第3列给出了总金额和最后3列给出的Id
的重复计数Payor S1 S2 S3 S1_Count S2_Cnt S3_cnt
-------------------------------------------
Medical 300 850 500 2 2 1
或者我在不同的多行显示相同的数据也好
Payor s1 s2 s3
--------------------
Medical 300 850 500
Medical 2 2 1
一个聚合函数给出了金额的总和,另一个聚合函数给出了不同数量的id
我试过使用Pivot,但我无法弄清楚如何在单个SQL命令中使用两个聚合函数。当我使用count(distinct ID)
时,它立即抛出一个错误,不知道我在做什么错误。
使用下面的代码,我可以得到第一个3列s1,s2,s3,它们是特定付款人的金额总和。
SELECT
[payor], [s1], [s2], [s3]
FROM
(SELECT
[payor], des, amount
FROM age) AS age1 ---- from age table
PIVOT
(SUM(amount) FOR des IN ([s1], [s2], [s3]) AS t2; --- sum
任何人都可以帮助我找到正确的格式吗?
钍非常感谢您,先生,我试过使用枢轴联合它使我的执行时间增加了一倍,但case语句对我来说效果很好。 – Avi