SQL для получения идентификатора, который соответствует самой высокой дате, сгруппированный по другому полю - PullRequest
0 голосов
/ 11 июля 2019

У меня есть следующие данные:

enter image description here

Я хочу получить ids, который соответствует самой высокой дате (представленной max(folga)), сгруппировав по funcionario_id.

Вот выходная таблица, которую я хочу, , но в ней отсутствует идентификатор :

enter image description here

Как мне этого добиться?

Спасибо за внимание.

1 Ответ

1 голос
/ 11 июля 2019

Один из способов сделать это с помощью NOT EXISTS:

select
  t.funcionario_id, t.folga, t.id
from tablename t
where not exists (
  select 1 from tablename
  where funcionario_id = t.funcionario_id and folga > t.folga
)

или сначала вы можете group by funcionario_id, чтобы получить максимальную дату (я думаю, это запрос, который вернул опубликованный вами результат) изатем присоединитесь к столу:

select t.*
from tablename t inner join (
  select funcionario_id, max(folga) folga
  from tablename
  group by funcionario_id 
) g on g.funcionario_id = t.funcionario_id and g.folga = t.folga
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...