1 つ以上の集計関数と日付 GROUP-BY を使用するクエリ結果がいくつかあるため、次のようになります。
日付 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 などの集計関数を結果セットの列の 1 つに適用する方法です。たとえば、次のように "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 でこれを行う方法はありますか?