【发布时间】:2014-02-11 19:28:31
【问题描述】:
SQL Server 编程新手,想看看我是否可以就这个查询获得帮助。 假设我有一张表 LatencyInfo
DateTime Latency
2014-01-21 00:00:00 12334
2014-01-21 00:00:00 56384
2014-01-20 00:00:00 1232
2014-01-20 00:00:00 4353
2014-01-19 00:00:00 434343
我的目标是在查询中找到每天第 95 个百分位的延迟时间。所以,到目前为止,我能够想出一个日期的第 95 个百分位,但我坚持在日期上聚合它。我无法使用 PERCENTILE-CONT,因为我正在使用的 sql server 版本不支持此查询。
select MIN(P.latency)
from
(select top 5 PERCENT S.latency as PerLatencyInfo
from
(select convert(varchar(20), datetimefield, 1) as datefield
,latency
from LatencyInfo
where datetimefield >= '2014-01-21 00:00:00'
) as S
order by S.latency DESC
) as P
非常感谢任何帮助。我无法在此处尝试 CLR 聚合,因为我无法在服务器上安装 .NET 框架。
如果我不能使用自定义聚合函数,即使我可以在任何其他等效逻辑上获得帮助,那也很棒。
使用 Sql Server 11.0.9
【问题讨论】:
-
您使用的是什么版本的 SQL Server?
-
使用 Sql Server 11.0.9206
-
@user3167619 酷,老方法:11.0 :)
-
@PM77-1 这篇文章非常好,内容丰富。谢谢你帮了大忙。
标签: sql sql-server sql-server-2012 aggregate-functions