【发布时间】:2011-10-21 06:28:07
【问题描述】:
我有以下(简化的)查询:
SELECT ResolvedBy, COUNT(*) AS Count, fiCategory, fiSubCategory, fiSymptom
FROM tContact
WHERE (ResolvedBy IS NOT NULL)
GROUP BY ResolvedBy, fiCategory, fiSubCategory, fiSymptom
ORDER BY Count DESC
现在我需要fiCategory, fiSubCategory, fiSymptom 的每个组合的平均计数作为列。该怎么做?
例如:
ResolvedBy Count fiCategory fiSubCategory fiSymptom Average
1 50 1 2 3 40
2 30 1 2 3 40
3 40 1 2 3 40
1 20 2 3 4 30
2 40 2 3 4 30
在示例中是 fiCategory、fiSubCategory 和 fiSymptom 的两种组合:1,2,3 和 2,3,4。因此,计算了两个平均值:
- 50+30+40 / 3 = 40
- 20+40 / 2 = 30。
所以我想将每个组合的计数相加并除以出现次数。
编辑:该示例是对所需查询结果的提取。计数是每个ResolvedBy 的此组合的所有出现的总和。
提前谢谢你。
【问题讨论】:
-
为了帮助确定解决方案,您如何得出平均值?
-
您是指使用显示数据的平均值吗?即,fiCategory 的平均值为 (1+1+1+2+2)/5 = 1.4?
-
这也可能有助于查看您期望输出的样子。
-
在示例中是 fiCategory、fiSubCategory 和 fiSymptom 的两种组合:1,2,3 和 2,3,4。因此计算出两个平均值:1.combi => 50+30+40/3 和 2.combi => 20+40/2。所以我想总结每个组合的计数并除以出现次数。
标签: sql sql-server sql-server-2005 group-by