簡體   English   中英

獲取TOP n PERCENT查詢中的最后一條記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM