MySQL поддерживает только dense_rank()
в версии 8+.Вы всегда можете использовать коррелированный подзапрос:
select i.*
from invoices i
where i.invoice_total = (select max(i2.invoice_total)
from invoices i2
where i2.vendor_id = i.vendor_id
);
Предполагается, что «ведущие поставщики» ссылаются на наибольшие итоги, что противоположно вашему SQL.
Есть и другие способы выразить это.Мне также нравится использовать кортежи в MySQL:
select i.*
from invoices i
where (i.vendor_id, i.invoice_total) in
(select i2.vendor_id, max(i2.invoice_total)
from invoices i2
group by i2.vendor_id
);