Вы можете сделать это без объединений.Используйте аналитическую функцию для вычисления max(price)
, возьмите 80%, затем используйте цену фильтра> 80%:
with your_data as ( --this is your data
select stack(10,
1 , 100,
2 , 200,
3 , 120,
4 , 130,
5 , 320,
6 , 300,
7 , 200,
8 , 100,
9 , 120,
10, 250) as (ID, PRICE)
)
select id, price
from
(
select d.*, max(price) over()*0.8 as pct_80 from your_data d
)s where price>pct_80
Результат:
OK
id price
6 300
5 320
Используйте вашу таблицу вместо WITH
подзапросадобавьте заказ на ID , если необходимо.