-1

SQL は初めてで、LIMIT を使用せずに 5 番目に高い値を取得したいと考えています。ここに私が試しているコードがありますが、正しく動作していません。5 番目に高い値ではなく、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)

誰でもこれで私を助けることができますか?

4

3 に答える 3

4

次のこともできます。

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
);
于 2012-05-08T08:58:47.563 に答える
0

これを試して

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 )
于 2012-05-08T08:56:09.053 に答える