Как выбрать столбец из определенной строки, в которой я использовал max для другого столбца, чтобы определить строку - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу определить имя игрока с самым высоким идентификатором в конкретной команде, игрока с самым высоким идентификатором и игрока с самым низким идентификатором. Это sql у меня в настоящее время. Это работает, но мне интересно, есть ли лучшие / альтернативные способы, о которых я не знаю:

select max(player_id),
       min(player_id),
       substring(
           max(
               concat(
                   lpad(player_id::text, 10, '0'), 
                   player_name)) 
        from 11) 
from players
where team_id = 201 
group by team_id;

1 Ответ

0 голосов
/ 05 сентября 2018

order by и limit, вероятно, лучший способ:

select p.*
from players p
where p.team_id = 201 
order by p.team_id, p.player_id desc
fetch first 1 row only;

Если вы хотите получить результат для всех (или некоторых) команд, используйте distinct on:

select distinct on (teamp_id) p.*
from players p
where p.team_id = 201 
order by p.team_id, p.player_id desc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...