Как получить 10 лучших значений в postgresql?

118

У меня есть простой вопрос:

У меня есть база данных postgresql: Scores(score integer).

Как бы я получил самые высокие 10 баллов быстрее?

UPDATE: я буду делать этот запрос несколько раз и буду стремиться к самому быстрому решению.

  • 0
    10 или 100? Заголовок и тело вопроса различаются ... (хотя ответ даст достаточно подсказки, чтобы вы могли продолжить).
  • 0
    Ха ... Это не имеет значения. Я изменил свой вопрос в топ-10.
Показать ещё 1 комментарий
Теги:

2 ответа

181

Для этого вы можете использовать limit

select *
from scores
order by score desc
limit 10

Если производительность важна (когда это не так;-), найдите индекс по результату.


Начиная с версии 8.4, вы также можете использовать стандартный (SQL: 2008) fetch first

select *
from scores
order by score desc
fetch first 10 rows only
31

Кажется, что вы ищете ORDER BY в DESC окончательном порядке с LIMIT:

SELECT
 *
FROM
  scores
ORDER BY score DESC
LIMIT 10

Конечно, SELECT * может серьезно повлиять на производительность, поэтому используйте его с осторожностью.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню