SELECT
LEFT(s.seat_no, LENGTH(s.seat_no) - 1) AS row, -- Извлекаем номер ряда (убираем последнюю букву, предполагаем что это буква)
JSON_AGG(s.seat_no ORDER BY s.seat_no) AS seats, -- Собираем все места в ряду в JSON массив
s.fare_conditions -- Тип места (класс)
FROM
seats s
WHERE
s.aircraft_code = '777-300' -- Для самолета Boeing 777-300
GROUP BY
row, s.fare_conditions -- Группировка по ряду и классу
ORDER BY
row, s.fare_conditions; -- Сортировка по ряду и классу
;
select * from query_cost('SELECT
LEFT(s.seat_no, LENGTH(s.seat_no) - 1) AS row, -- Извлекаем номер ряда (убираем последнюю букву, предполагаем что это буква)
JSON_AGG(s.seat_no ORDER BY s.seat_no) AS seats, -- Собираем все места в ряду в JSON массив
s.fare_conditions -- Тип места (класс)
FROM
seats s
WHERE
s.aircraft_code = ''777-300'' -- Для самолета Boeing 777-300
GROUP BY
row, s.fare_conditions -- Группировка по ряду и классу
ORDER BY
row, s.fare_conditions; -- Сортировка по ряду и классу
');