Я пытаюсь написать запрос, который вытаскивает лучших 5 клиентов по количеству всех продуктов, которые они приобрели. Нет проблем. Но, кроме того, мне нужно найти продукт, который был самым популярным для каждого из этих 5 клиентов.Пытается найти самый популярный продукт
Я думаю, что могу сделать это, посмотрев, какой продукт они купили больше всего (так что количество productID является максимальным количеством), но я не совсем уверен, как добраться до идентификатора продукта. Есть идеи? Неужели я все это делаю неправильно? Благодаря!
select top 5 c.CustomerID, sum(sod.orderqty) AS 'Amount Purchased',
max(sod.orderqty) AS 'Most Purchased'
from Sales.Customer c
inner join Sales.SalesOrderHeader soh on soh.CustomerID = c.CustomerID
inner join Sales.SalesOrderDetail sod on sod.SalesOrderID = soh.SalesOrderID
inner join Production.Product p on p.ProductID = sod.ProductID
group by c.CustomerID
order by 'Amount Purchased' desc
Я попробовал запрос ниже, но по некоторым причинам, в том числе p.name в группе, полностью скидывает макс. Например, в этом запросе, «Наиболее продаваемое» должно быть 20, но он показывает, как 18
select top 5 soh.CustomerID, sum(sod.orderqty) AS 'Amount Purchased'
, max(sod.orderqty) AS 'Most Purchased', p.name
from Sales.SalesOrderHeader soh
inner join Sales.SalesOrderDetail sod on sod.SalesOrderID = soh.SalesOrderID
inner join Production.Product p on p.ProductID = sod.ProductID
where soh.CustomerID = 29705
group by soh.CustomerID, p.name
order by 'Amount Purchased' desc
Я получаю ошибку в кресте применительно к «FROM Sales.SalesOrderHeader soh on soh.customerID = CTE_TopCustomers.CustomerID». Он говорит о некорректном синтаксисе рядом с «on». Ничто из того, что я делаю, не исправляет это ... – Michelle
Выяснил это. Это выглядит фантастически, спасибо! – Michelle
Трудно писать все правильно, без фактических таблиц и возможности запуска запроса во время записи. В следующий раз, когда вы зададите такие вопросы, введите код для создания примерных таблиц с образцами данных. Во всяком случае, я рад, что это сработало для вас. –