我有几个使用一个或多个聚合函数和日期 GROUP-BY 的查询结果,所以它们看起来像这样:
日期 VisitCount(COUNT) TotalBilling(SUM) 2010 年 1 月 1 日 234 15765.21 2010 年 1 月 2 日 321 23146.27 10 年 1 月 3 日 289 19436.51
上面的简化 SQL 是:
SELECT
VisitDate,
COUNT(*) AS VisitCount,
SUM(BilledAmount) AS TotalBilling
FROM Visits
GROUP BY VisitDate
我想要的是一种将聚合函数(如 AVG)应用于结果集中的一个列的方法。例如,我想将“AvgVisits”和“AvgBilling”列添加到结果集中,如下所示:
日期 VisitCount(COUNT) TotalBilling(SUM) AvgVisits AvgBilling 2010 年 1 月 1 日 234 15765.21 281.3 19449.33 2010 年 1 月 2 日 321 23146.27 281.3 19449.33 2010 年 1 月 3 日 289 19436.51 281.3 19449.33
SQL 不允许将聚合函数应用于另一个聚合函数或子查询,因此我能想到的唯一方法是使用临时表或遍历结果集并手动计算值。有没有什么方法可以在 MSSQL2008 中做到这一点而无需临时表或手动计算?