请求协助计算T-SQL数据集里Count_of_Attno字段的平均值(AttNo为nvarchar)
计算分组统计结果中Count_of_Attno的平均值
要得到你现有分组查询里Count_of_Attno的平均值,只需要把当前的分组统计作为数据源,在外层使用AVG()函数计算即可。这里有两种常用的写法:
方法1:使用子查询
SELECT AVG(Count_of_Attno) AS Avg_Count_of_Attno FROM ( SELECT CONVERT(CHAR(10), ArrDateTime, 120) as [Date], COUNT(AttNo) as Count_of_Attno FROM [dbo].[Main] GROUP BY CONVERT(CHAR(10), ArrDateTime, 120) ) AS DailyCounts
方法2:使用CTE(公共表表达式)
WITH DailyCounts AS ( SELECT CONVERT(CHAR(10), ArrDateTime, 120) as [Date], COUNT(AttNo) as Count_of_Attno FROM [dbo].[Main] GROUP BY CONVERT(CHAR(10), ArrDateTime, 120) ) SELECT AVG(Count_of_Attno) AS Avg_Count_of_Attno FROM DailyCounts
补充说明:
- 虽然
AttNo是nvarchar类型,但COUNT(AttNo)会自动统计该字段非空值的数量,类型不会影响统计结果,所以不需要额外转换类型来计算数量。 - 如果需要保留小数位数(比如平均值为小数),可以用
AVG(CAST(Count_of_Attno AS DECIMAL(10,2)))来格式化结果。
内容的提问来源于stack exchange,提问作者Algirdas
相关产品推荐
相关产品推荐

