Tim*_*ter 4 sql sql-server group-by sql-server-2005
我有以下(简化)查询:
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
Run Code Online (Sandbox Code Playgroud)
现在我需要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
Run Code Online (Sandbox Code Playgroud)
在这个例子中是fiCategory,fiSubCategory和fiSymptom的两种组合:1,2,3和2,3,4.因此,有两个平均值计算:
所以我想总结每个组合的数量并除以出现次数.
编辑:该示例是提取查询的所需结果.计数是每个组合的所有出现的总和ResolvedBy.
先感谢您.
Select ResolvedBy, [Count], fiCategory, fiSubCategory, fiSymptom
, Avg(Z.Count) Over( Partition By fiCategory, fiSubCategory, fiSymptom ) As AvgByGrp
From (
Select ResolvedBy, Count(*) As [Count], fiCategory, fiSubCategory, fiSymptom
From tContact
Group By ResolvedBy, fiCategory, fiSubCategory, fiSymptom
) As Z
Order By Z.Count Desc
Run Code Online (Sandbox Code Playgroud)