簡體   English   中英

我如何在PostgreSQL中執行此SQL查詢

[英]how can i do this SQL query in postgreSQL

我是SQL數據庫的新手,具有如下表和列

產品信息

  • productInformationID(主鍵)
  • ..
  • ..
  • 價錢

產品

  • productId(主鍵)
  • productInformationID(外鍵)
  • ...
  • ..

已售產品

  • id(主鍵)
  • productID(外鍵)
  • ..

我正在尋找銷售量最大,總價格最高的出售產品。

根據此表,如何在SQL中執行此查詢?

我假設您“ 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 ; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM