1. ホーム
  2. sql

[解決済み] SQLでデータの90パーセンタイル、SD、平均を計算する方法

2022-03-07 05:43:02

質問

こんにちは、私はテーブル設備を持っています。これは、各日のスコアを保持します(複数のスコアを毎日報告することができ、両方が有効です)。

月別のスコアの90パーセンタイル、SD、平均を計算したいのですが。

施設です。

Id   Month Date  score
1    Jan     1    5
1    Jan     1    5
1    Jan     2    3
1    Jan     3    4
1    Jan     4    4
1    Jan     5    4
1    Feb     1    5
1    Feb     1    5
1    Feb     2    3
1    Feb     3    4
1    Feb     4    4
1    Feb     5    4

何か方法はないでしょうか?

よろしくお願いします。

解決方法は?

SQL Server 2012で導入された新しい分析関数群を使用することができます。

SELECT DISTINCT
            [Month],
            Mean   = AVG(Score) OVER (PARTITION BY [Month]),
            StdDev = STDEV(Score) OVER (PARTITION BY [Month]),
            P90    = PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY Score) OVER (PARTITION BY [Month])
FROM        my_table

パーセンタイル関数は2つあります。 PERCENTILE_CONT 連続分布の場合は PERCENTILE_DISC は離散分布の場合です。用途に合わせてお選びください。