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