統計的な集計関数を使う
SQL Server には統計用途の集計関数がいくつかあります。AVG() は標本の平均を計算します。STDEV() と STDEVP() は、それぞれ標本と母集団の標準偏差を返します。VAR() と VARP() は、それぞれ標本と母集団の分散を返します。これらは、前の演習で学んだ SUM()、COUNT()、MIN()、MAX() などの集計関数に加えて使用できます。
この演習では、2020 年の第 2 四半期のインシデント集計とインシデント種別データをもう一度見ていきます。日々のインシデント件数がどの程度ばらついているのか、つまり日ごとに安定しているのか、大きく振れるのかを把握したいと考えています。
この演習はコースの一部です
SQL Serverで学ぶ時系列分析
演習の手順
- 足りない集計関数を補ってください。標準偏差と分散には、母集団用ではなく標本用の関数を使いましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- Fill in the missing function names
SELECT
it.IncidentType,
___(ir.NumberOfIncidents) AS MeanNumberOfIncidents,
___(CAST(ir.NumberOfIncidents AS DECIMAL(4,2))) AS MeanNumberOfIncidents,
___(ir.NumberOfIncidents) AS NumberOfIncidentsStandardDeviation,
___(ir.NumberOfIncidents) AS NumberOfIncidentsVariance,
___(1) AS NumberOfRows
FROM dbo.IncidentRollup ir
INNER JOIN dbo.IncidentType it
ON ir.IncidentTypeID = it.IncidentTypeID
INNER JOIN dbo.Calendar c
ON ir.IncidentDate = c.Date
WHERE
c.CalendarQuarter = 2
AND c.CalendarYear = 2020
GROUP BY
it.IncidentType;