Укажите ProductCode, ProductName и количество заказов для продукта с наибольшим количеством заказов. Количество заказов как «OrderCount» - PullRequest
0 голосов
/ 25 февраля 2020

Я не смог получить максимальное количество. Это два кода, которые я пытался использовать

select o.productCode, p.productname, count(*) as ordercount
from orderdetails o, products p
where o.productCode= p.productCode
and max(ordecount)
group by productcode

select o.productCode, p.productname, count(*) as ordercount
from orderdetails o, products p
where o.productCode= p.productCode
in ( 
      select max(count(*) )
      from orderdetails o, products p
      where o.productCode= p.productCode
)

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Насколько я понял ваш ответ, вы можете просто отсортировать ваш набор результатов и оставить только первую строку:

select o.productCode, p.productname, count(*) as ordercount
from orderdetails o
inner join products p on o.productCode= p.productCode
group by o.productCode, p.productname
order by ordercount desc 
limit 1

Обратите внимание, что я изменил ваш запрос, чтобы использовать стандартные, явные объединения (с on ключевое слово), а не старые школы, неявные объединения (с запятой в предложении from), синтаксис которых намного сложнее следовать и которые вышли из употребления с момента выпуска ANSI SQL 92 (десятилетия а go).

0 голосов
/ 25 февраля 2020
select o.productCode, 
       ANY_VALUE(p.productname), -- needed for to aviod not full group by error
       count(*) as ordercount
from orderdetails o, products p
where o.productCode= p.productCode
group by productcode
ORDER BY ordercount DESC LIMIT 1 -- select the only record with maximal value

Если существует более одного кода продукта с одинаковым максимальным количеством заказов, будет возвращен только один из них (случайный в показанном запросе).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...