SQL MAX после SQL SUM

У меня есть разные таблицы, по которым я получаю итоговую цену продуктов

select id_pizza, sum(quantity*p.price) as total_price
from order_content o
left join pizza p on o.id_pizza = p.id
group by id_pizza

Как получить максимальную из этих цен вместе с id_pizza? Максимальные цены у разных продуктов могут совпадать, тогда мне нужно получить их все.


Ответы (1 шт):

Автор решения: Akina
WITH cte AS (
    select o.id_pizza, 
           sum(o.quantity*p.price) as total_price
           RANK() OVER (ORDER BY SUM(o.quantity*p.price) DESC) rnk
    from order_content o
    left join pizza p on o.id_pizza = p.id
    group by o.id_pizza
)
SELECT id_pizza, total_price
FROM cte
WHERE rnk = 1;
→ Ссылка