我是SQL新手,我想在不使用LIMIT的情況下獲取第5個最高值。這是我正在嘗試的代碼,但它無法正常工作。它顯示的是第5個最低值,而不是第5個最高值。在不使用LIMIT的情況下選擇第5個最高值
SELECT a . * FROM user AS a
WHERE 5 =
(SELECT count(DISTINCT b.id) FROM user AS b WHERE b.id >= a.id ORDER BY a.id DESC)
任何人都可以幫助我嗎?
我是SQL新手,我想在不使用LIMIT的情況下獲取第5個最高值。這是我正在嘗試的代碼,但它無法正常工作。它顯示的是第5個最低值,而不是第5個最高值。在不使用LIMIT的情況下選擇第5個最高值
SELECT a . * FROM user AS a
WHERE 5 =
(SELECT count(DISTINCT b.id) FROM user AS b WHERE b.id >= a.id ORDER BY a.id DESC)
任何人都可以幫助我嗎?
試試這個
SELECT a . *
FROM user AS a
WHERE 5 = (
SELECT count(DISTINCT b.id)
FROM user AS b
WHERE a.id >= b.id ORDER BY a.id)
你也可以這樣做:
SET @nth := 5;
SELECT
a.*
FROM jos_modules AS a
WHERE @nth = (
SELECT
COUNT(b.id)
FROM user AS b
WHERE
a.id >= b.id
);
感謝它的工作 – Jhilom
只需4小時前複製到http://stackoverflow.com/questions/10492357/sql-query-to-find-nth-highest-salary! – fankt
爲什麼不使用LIMIT? – gbn