Несколько проблем.
- Нельзя использовать
AS
в Oracle для псевдонима имени таблицы - Нельзя ссылаться на псевдоним
TEMP
в подзапросе, напримерчто.
Использование аналитических функций, как правило, будет наиболее эффективным подходом.
SELECT flight_number,
avgprice
FROM (
SELECT t.flight_number,
t.avgprice,
rank() over (order by t.avgprice desc) rnk
FROM (SELECT P.flight_number,
AVG (P.amount) AS avgprice
FROM purchase P
GROUP BY P.flight_number) t
)
WHERE rnk = 1
Вы также можете сделать что-то подобное с использованием факторинга подзапроса
WITH temp AS (
SELECT P.flight_number,
AVG (P.amount) AS avgprice
FROM purchase P
GROUP BY P.flight_number
)
SELECT flight_number,
avgprice
FROM temp
WHERE avgprice = (SELECT MAX(avgprice)
FROM temp)