SQL Server 2008 中的中位数和第 95 个百分位? - NHS 报告要求
我试图找出 SQL Server 2008 中的 95% 和中位数内置函数,但我不知道为什么 MS 不支持它们,真的很烦人...我们的工作场所报告非常复杂,需要一个直接的函数或可能是一个 dll 文件,我可以将其与 SQL Server 组装以将其用作正常功能。
任何人都可以提供建议吗?提前致谢。
目标 阿里
I have tried to find out 95th percentile and median build in function in SQL server 2008 but I do not know why MS does not give support for them, really annoying... Our work place reports are very complex and wanted a straight forward function or may be a dll file which i could assemble with SQL server to use it as normal function.
could any one advice. Thanks in advance.
Reagrds
Ali
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
有 NTILE 函数,对于 MEDIAN 读取 这个。
There's NTILE function and for MEDIAN read this.
您可以在 Visual Studio 中创建 DLL,通过创建在 SQL Server 中使用的自定义聚合函数来执行此操作。为此,创建一个新的 Visual Studio 项目并将目标框架设置为 .NET 3.5(这是针对 SQL 2008,在 SQL 2012 中可能有所不同)。然后创建一个类文件并放入以下代码或 C# 等效代码。
请注意,此算法获取最接近指定百分位数的值。如果您想使用不同的百分位算法,则可以为此修改代码。
此过程允许用户输入任何百分位进行查询。查询如下所示: SELECT dbo.Percentile(Value, 95) FROM Table
然后编译它并将 DLL 和 PDB 文件复制到 SQL Server 计算机,并在 SQL Server 中运行以下命令:
You can create a DLL in Visual Studio to do this by creating a custom aggregate function for use in SQL Server. To do this create a new Visual Studio project and set the target framework to .NET 3.5 (this is for SQL 2008, it may be different in SQL 2012). Then create a class file and put in the following code, or c# equivalent.
Note that this algorithm gets the nearest value to the specified percentile. If you want to use a different percentile algorithm, then the code could be modified for that.
This process allows the user to enter any percentile to query for. The query would look like this: SELECT dbo.Percentile(Value, 95) FROM Table
Then compile it and copy the DLL and PDB file to your SQL Server machine and run the following command in SQL Server:
第 95 个百分位数的公式是
MAX(行数)*95/100
95 th percentile formula is
MAX(Rownumber)*95/100
我也为 NHS 工作,这是我编写的 SQL,用于找出中位数、最大值和第 95 个百分位
查看此内容并向我发送电子邮件[电子邮件受保护]
I work for NHS as well here is the SQL whcih i wrote to find out median,MAX,and 95th percentile
check this out and email me [email protected]