Как получить id и max(timestamp)
Получаю ее запросом :
`
select
t.ticket_no,
v.arrival_city,
v.departure_city,
v.scheduled_departure
from
( select ticket_no, flight_id from ticket_flights tf where ticket_no in
(select ticket_no from ticket_flights tf group by ticket_no having count(flight_id) > 1)) t
join (
select
flight_id,
flight_no,
arrival_city,
departure_city,
scheduled_departure
from
flights_v)v on
t.flight_id = v.flight_id
`
Хочу из этой таблицы достать все уникальные ticket_no и максимальное scheduled_departure
делаю запрос:
`select
ticket_no,
arrival_city,
departure_city,
max(scheduled_departure) from моя_таблица
group by ticket_no, arrival_city, departure_city
`
Запрос выдает точно, такую же таблицу как и выше. Подскажите пожалуйста, что можно сделать. По факту хочу схватить все ticket_no с максимальным scheduler_daparture для конкретного ticket_no.
Ответы (1 шт):
В вашей задаче вы хотите получать информацию по паре ticket_no, scheduler_daparture, но по факту группируете по большему числу полей. Поля arrival_city, departure_city в связки ticket_no достаточно уникальны, поэтому вы как будто получаете туже таблицу, просто не почему группировать.
Необходимо сначала найти все требуемые уникальные пары, а потом по ним отобрать конкретные записи в первоначальной таблице.
select
*
from моя_таблица t
where (t.ticket_no, t.scheduled_departure) in
(select
g.ticket_no,
max(g.scheduled_departure)
from моя_таблица g
group by g.ticket_no)
