查询 sql server 2005 以获得不同组的第 95 个百分位
Posted
技术标签:
【中文标题】查询 sql server 2005 以获得不同组的第 95 个百分位【英文标题】:query for sql server 2005 for getting the 95th percentile of different groups 【发布时间】:2012-06-05 10:31:15 【问题描述】:我有一张像下面描述的虚拟表一样的表
日期 ||服务器 ||计数
1200 ||乙 || 123
1200 || C || 124
1200 ||乙 || 125
1300 ||乙 || 126
1300 || C || 127
1300 ||乙 || 128
1300 || C || 129
我需要编写一个查询来创建一个表,以便获得按日期和服务器分组的 Count 的 95 个百分位。
我对Sql没有太多经验,看了google搜索结果,浏览了无数链接,看到很多子查询使用后,我有点害怕。没有人能给出简单的查询。我们不能直接使用直接查询得到如下结果吗?
日期 ||服务器 ||计数
1200 ||乙 || 123
1200 || C || 124
1300 ||乙 || 126
1300 || C || 127
有人可以提供可以使用的确切查询吗?
感谢您的帮助!
【问题讨论】:
【参考方案1】:SELECT *
FROM (
SELECT *, NTILE(20) OVER (PARTITION BY [date], [server] ORDER BY [count]) AS t
FROM mytable
) q
WHERE t < 20
【讨论】:
以上是关于查询 sql server 2005 以获得不同组的第 95 个百分位的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 2005/2008 中清除查询执行统计信息
如何避免从 C# 构建的 Sql Server 2005 参数化查询变慢
sql server 2005多表连接查询,去除部分列不查询