Выбрать топ продуктов
Присутствуют две таблицы.
Детали заказов: ProductID-id продукта, Quantity-количество проданного товара
CREATE TABLE #OrderDetails (ProductID nvarchar(50), Quantity nvarchar(50));
INSERT INTO #OrderDetails VALUES
('111','2'),
('222','2'),
('333','1'),
('444','3'),
('555','5'),
('666','1');
И информация о продукте: ProductID-id продукта, ProductName-название продукта
CREATE TABLE #Products (ProductID nvarchar(50), ProductName nvarchar(50));
INSERT INTO #Products VALUES
('111','Apple'),
('222','Nokia'),
('333','Acer'),
('444','Samsung'),
('555','HP'),
('666','LG');
Требуется вывести имена и ID пяти самых покупаемых продуктов. А также сколько их было продано.
Ответы (1 шт):
Автор решения: teran
→ Ссылка
Берете заказы, джойните продукты, считаете число товаров в заказах, группируете по ним и сортируете по убыванию. берете первые 5.
SELECT p.ProductName, sum(Quantity) as q
FROM OrderDetails AS o
INNER JOIN Products AS p ON p.ProductID = o.ProductID
GROUP BY p.ProductName
ORDER BY SUM(Quantity) DESC
в тэгах у вас указана mysql тогда в конец LIMIT 5. Но поскольку данный вариант вызывает ошибку, то видимо там не mysql и работать в песочнице будет вариант SELECT TOP 5
зы: структуру таблиц и примеры данных надо включать в вопрос, а не по внешним ссылкам