簡體   English   中英

如何使用sql查詢獲得第四高的值

[英]How to get the fourth highest value using sql query

我有學生表,其中包含分數列。 我想獲得第四高的分數,其中表數據按升序排列。

這應該有效:

SELECT score FROM table ORDER BY score ASC LIMIT 1 OFFSET 4 

只需添加LIMIT子句:

LIMIT 子句可用於限制 SELECT 語句返回的行數。 LIMIT 接受一個或兩個數字參數,它們都必須是非負整數常量(使用准備好的語句時除外)。

有兩個參數,第一個參數指定要返回的第一行的偏移量,第二個參數指定要返回的最大行數。 初始行的偏移量為 0(不是 1)

所以你會寫:

SELECT column_name
FROM table_name
ORDER BY column_name
LIMIT 3, 1
SELECT score
FROM student
ORDER BY score asc
LIMIT 3, 1

對於 SQL Server 查詢,可以使用以下 statmenet:

with data as 
(
    select
        ROW_NUMBER() OVER (ORDER BY id) as rownum,
        id
    from thetable 
)
select * from data 
where rownum = 4 
order by id asc 

MSSQL 不支持LIMIT 。您必須使用TOP關鍵字或通過ROW_NUMBER()來做它供您參考這里是鏈接LIMIT IN MSSQL

您可以使用 ROW_NUMBER()

SELECT * FROM (
      SELECT ROW_NUMBER() OVER (ORDER BY score ASC) AS RowNumber,
      *
      FROM student
 ) AS foo
WHERE RowNumber = 4

您將獲得第 4 高分

或者你也可以這樣做

SELECT * FROM (
      SELECT ROW_NUMBER() OVER (ORDER BY score ASC) AS RowNumber,
      *
      FROM student
 ) AS foo
WHERE RowNumber >3 and <=4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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