Как я могу сделать этот запрос: «Найти, какой тип продается больше, чем другие?» - PullRequest
0 голосов
/ 18 мая 2018

У меня есть такие таблицы:

продукты

-productId (primarykey)

-productCategory (foreignkey)

productCategories

-productCategoryId (pk)

-productCategoryName

soldProducts

-soldProductId (pk)

-productId (fk)

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

В таблице soldProducts, например, если «x» продукт на «soldProducts»«Четыре раза, это означает, что« х »продукт продан 4 раза.

В соответствии с этим, как я могу сделать этот запрос?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Просто присоединитесь к своим таблицам:

SELECT pc.productCategoryName, COUNT(*) AS Sales
FROM solProducts sp
INNER JOIN products p ON sp.productid = p.productid
INNER JOIN productCategory pc ON p.productCategoryID = pc.productCategoryID
GROUP BY pc.productCategoryName
ORDER BY Sales DESC

Я предполагаю, что внешний ключ категории продукта в продуктах на самом деле является идентификатором, который сопоставляется с таблицей категорий продуктов.

0 голосов
/ 18 мая 2018

Если вы хотите одну категорию, которая была продана больше всего, то это в основном join и group by:

select p.productCategory, count(*)
from soldProducts sp join
     products p
     on sp.productId = p.productId
group by p.productCategory
order by count(*) desc
fetch first 1 row only;

Это отвечает на вопрос (как я его понимаю), но этооставляет открытыми некоторые проблемы:

  • Что происходит, когда есть связи (то есть, более одной категории связаны в первую очередь)?Вы не указываете, что делать.
  • Если вам нужно имя категории, то вам нужно join, чтобы вернуться.

Я также отмечаю, что модель данныхкрайне ограниченный, без информации о покупателе, продавце, дате продажи, проданной сумме или возврате.Некоторые из них могут повлиять на результаты.

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