Agg*_*gga 15 sql sql-server sql-server-2012
嗨,我有一个餐桌设施.每天持有一个分数(每天可以报告多个分数,两者都有效)
我需要按月计算得分的第90个百分点,标准差和平均值.
设施:
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
Run Code Online (Sandbox Code Playgroud)
有什么办法吗?
谢谢你的帮助.
Cod*_*ent 33
您可以使用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
Run Code Online (Sandbox Code Playgroud)
有2个百分位函数:PERCENTILE_CONT用于连续分布和PERCENTILE_DISC离散分布.挑选一个适合您需求的产品.