[英]Dynamic TOP N / TOP 100 PERCENT in a single query based on condition
[英]Getting the last record in a TOP n PERCENT query
我試圖在我的數據中找到某些百分位數的邊界,即10%標記處的值是多少,因此有人必須超過10%才能超過這個值。
我可以通過運行查詢來獲得該值,例如:
SELECT TOP 10 PERCENT [Time]
FROM Scores
WHERE Lesson = 1
ORDER BY [Time];
...然后參考最后返回的記錄。
有誰知道我可以運行什么查詢直接獲得該值? ORDER BY子句似乎導致所有問題,因為我無法將上述運行作為子查詢,並且它已經是查詢不可或缺的部分,因此無法使用它來獲取底部記錄。 我敢肯定必須有一個簡單的方法。
提前致謝。
您可以使用外部查詢來選擇頂行:
SELECT TOP 1 Time
FROM (
SELECT TOP 10 PERCENT [Time]
FROM Scores
WHERE Lesson = 1
ORDER BY
Time
) as Top10
ORDER BY
Time DESC
SELECT MIN(Time)
FROM (
SELECT TOP 10 PERCENT [Time]
FROM Scores
WHERE Lesson = 1
ORDER BY
Time
)
這將返回前10%值的[Time]的最小值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.