Postgresql - ORDER BY DES C не работает - PullRequest
0 голосов
/ 13 июля 2020

У меня есть запрос sql вроде этого.

select
SUM(balance.amount) as amount
from "provider_games"
left join "balance" on "balance"."game_id" = "provider_games"."game_id"
group by "provider_games"."game_id"
order by "amount" desc limit 5

Моя таблица баланса включает:

game_id | amount
245 - 146.00
244 - 5013.00

Когда я делаю «заказ по des c», результат неверно:

amount
null
null
null
null
null

1 Ответ

4 голосов
/ 13 июля 2020

order by ... desc сортирует значения NULL вверх. И поскольку вы ограничиваете результат до 5 строк, вы видите только значения NULL.

Один из способов обойти это - заставить Postgres отсортировать значения NULL до конца:

order by amount desc nulls last
limit 5

Поскольку вас явно не интересуют значения NULL, вы также можете изменить свое внешнее соединение на внутреннее соединение, тогда вы, скорее всего, вообще не получите никаких значений NULL.

...