SELECT
CAST(SUBSTRING(s.seat_no FROM '^[0-9]+') AS INTEGER) 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
CAST(SUBSTRING(s.seat_no FROM ''^[0-9]+'') AS INTEGER) 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; -- Сортировка по ряду и классу
');