Получить наибольшее n значений, включая дубликаты в SQL - PullRequest
1 голос
/ 28 июля 2011

У меня есть запрос, который возвращает наибольшее n значений в таблице, и он работает нормально. Вот упрощенная версия запроса, который я использую:

SELECT Series FROM SeriesScores
        ORDER BY Series DESC LIMIT 0,n

Где n - это параметр в методе, который вызывает запрос. Конечно, у меня есть другие критерии, чтобы сузить список, но я думаю, что это не имеет значения в этом случае.

Проблема этого запроса в том, что он не вернет n + 1-й результат, если он равен n-му результату.

Если n = 1, у меня есть другой запрос, использующий MAX и соединяющий таблицу сам по себе, так что он возвращает каждого человека, который имеет максимальное значение в серии, но я не могу что-то выяснить для других n значений.

1 Ответ

1 голос
/ 28 июля 2011

Вы можете попробовать следующее:

SELECT s1.id, s1.series FROM SeriesScores s1 
INNER JOIN 
    (SELECT DISTINCT series FROM SeriesScores ORDER BY series DESC LIMIT 0, n) as s2 
    ON s1.series = s2.series
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...