Как найти товар с самой высокой ценой, для всех поставщиков?
Один и тот же поставщик (Supplier), может поставлять несколько продуктов, цена которых отличается, нужно составить запрос, который выведет ID и имя поставщика, а также товар с самой высокой ценой, для данного поставщика.
SELECT DISTINCT Suppliers.SupplierID, Suppliers.SupplierName, Products.Price
FROM Suppliers, Products
WHERE price=(SELECT MAX(price) FROM Products)
ORDER BY Suppliers.SupplierID ASC
Ответы (1 шт):
Автор решения: dzhukov
→ Ссылка
Вариант решения для T-SQL (т.к. СУБД не указана)
declare
@Suppliers table (SupplierID int, SupplierName varchar (100), Product varchar (100))
declare
@Products table (Product varchar (100), Price int)
insert into @Suppliers
values
(1, 'Supplier1', 'Product1'),
(1, 'Supplier1', 'Product2'),
(1, 'Supplier1', 'Product3'),
(2, 'Supplier2', 'Product1')
insert into @Products
values
('Product1', 100),
('Product2', 200),
('Product3', 300),
('Product1', 100)
select SupplierID, SupplierName,Product,Price
from
(
select SupplierID, SupplierName, p.Product, p.Price , max(p.Price) over (partition by SupplierID) price_max
from @Suppliers s
join @Products p on s.Product=p.Product
group by SupplierID, SupplierName, p.Product, p.Price
)t
where Price=price_max