Как я могу сделать этот запрос SQL в PostgreSQL - PullRequest
0 голосов
/ 16 мая 2018

Я новичок в базе данных SQL, у меня есть следующие таблицы и столбцы

productInformation

  • productInformationID (primarykey)
  • ..
  • ..
  • цена

product

  • productId (первичный ключ)
  • productInformationID (внешний ключ)
  • ...
  • ..

проданоПродукты

  • id (primarykey)
  • productID (foreignkey)
  • ..

Я пытаюсь найти проданный товар с наибольшим количеством и общей ценой этогопродажа.

Согласно этим таблицам, как я могу сделать этот запрос в SQL?

1 Ответ

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

Я предполагаю, что каждая запись в вашей таблице "soldProducts" является одной величиной.Здесь вы идете ( в postgresql ):

  1. Сгруппированы по productID для получения общего количества в проданных продуктах, упорядочены по убыванию количества и ограничены самой высокой суммой (1).
  2. Выберите продукты с наибольшим общим количеством

  3. Затем выполните серию из двух объединений, чтобы получить цену для расчета общей продажи.

    SELECT max.productID, max.total_quant , p.price*max.total_quant AS total_sale FROM
    
       (SELECT productID, COUNT(*) as total_quant FROM soldProducts 
       GROUP BY productID HAVING COUNT(*) = 
       (SELECT COUNT(*) as total_quant FROM soldProducts GROUP BY productID ORDER BY total_quant DESC LIMIT 1)) as max
    
       JOIN products AS p
       ON max.productID = p.productid
    
       JOIN productInformation AS pi
       ON p.productInformationID = pi.productInformationID ;
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...