我试图在我的数据中找到某些百分位数的边界,即10%标记处的价值是多少,因此有人必须超过10%才能达到最高值。
我可以通过运行查询来获得该值,例如:
SELECT TOP 10 PERCENT [Time]
FROM Scores
WHERE Lesson = 1
ORDER BY [Time];
...然后引用最后返回的记录。
有谁知道我可以运行什么查询来直接获取该值? ORDER BY子句似乎导致所有问题,因为我无法将上述运行作为子查询,并且它已经是查询不可或缺的部分,因此无法使用它来获取底部记录。我确信必须有一个简单的方法。
提前致谢。
答案 0 :(得分:4)
您可以使用外部查询来选择顶行:
SELECT TOP 1 Time
FROM (
SELECT TOP 10 PERCENT [Time]
FROM Scores
WHERE Lesson = 1
ORDER BY
Time
) as Top10
ORDER BY
Time DESC
答案 1 :(得分:0)
SELECT MIN(Time)
FROM (
SELECT TOP 10 PERCENT [Time]
FROM Scores
WHERE Lesson = 1
ORDER BY
Time
)
这将返回前10%值的[时间]的最小值