У меня есть несколько результатов запроса, которые используют одну или несколько статистических функций и дату GROUP-BY, поэтому они выглядят примерно так:
Date VisitCount(COUNT) TotalBilling(SUM)
1/1/10 234 15765.21
1/2/10 321 23146.27
1/3/10 289 19436.51
Упрощенный SQL для вышеупомянутого:
SELECT
VisitDate,
COUNT(*) AS VisitCount,
SUM(BilledAmount) AS TotalBilling
FROM Visits
GROUP BY VisitDate
То, что я хотел бы, это способ применения агрегатной функции, такой как AVG, к одному из столбцов в наборе результатов.Например, я хотел бы добавить столбцы «AvgVisits» и «AvgBilling» в результирующий набор следующим образом:
Date VisitCount(COUNT) TotalBilling(SUM) AvgVisits AvgBilling
1/1/10 234 15765.21 281.3 19449.33
1/2/10 321 23146.27 281.3 19449.33
1/3/10 289 19436.51 281.3 19449.33
SQL не разрешает применение агрегатной функции к другой агрегатной функции или подзапросу,так что я могу думать только о том, чтобы сделать это, используя временную таблицу или просматривая набор результатов и вычисляя значения вручную.Есть ли способы сделать это в MSSQL2008 без временной таблицы или ручного расчета?