首頁 > 資料庫 > mysql教程 > 如何使用單一 SQL 查詢尋找每個商店銷售前 N 的商品?

如何使用單一 SQL 查詢尋找每個商店銷售前 N 的商品?

Mary-Kate Olsen
發布: 2024-12-29 09:48:11
原創
746 人瀏覽過

How to Find the Top N Items Sold at Each Store Using a Single SQL Query?

用於確定每個商店前N 個商品的SQL 查詢

要在單一查詢中找到每個商店銷售的前N商品,我們可以利用GROUP BY 和ROW_NUMBER() 函數的組合。這是一個全面的解決方案:

WITH s AS (
  SELECT StoreID, UPCCode, tds, rn = ROW_NUMBER()
  OVER (PARTITION BY StoreID ORDER BY tds DESC)
  FROM 
  (
    SELECT StoreID, UPCCode, tds = SUM(TotalDollarSales)
    FROM Sales
    GROUP BY StoreID, UPCCode
  ) AS s2
)
SELECT StoreID, UPCCode, TotalDollarSales = tds
FROM s
WHERE rn <= 5
ORDER BY StoreID, TotalDollarSales DESC;
登入後複製

理解查詢

  • 子查詢s2 計算每個項目(UPCCode)的總銷售額(tds ) store (StoreID)。
  • 外部查詢使用WITH語句建立一個公用名為 s 的表格運算式 (CTE)。在此 CTE 中,ROW_NUMBER() 用於根據總銷售額降序排列 (DESC) 對每個商店內的商品進行排名。
  • 最終查詢選擇前 5 個商品(其中 rn 小於或等於5) 對於每個商店,按商店 ID 和總銷售額降序對結果進行排序。

這種方法可以有效地檢索最暢銷的商品每個存儲在單一 SQL 語句中,避免了多個查詢或低效的 UNION 操作的需要。

以上是如何使用單一 SQL 查詢尋找每個商店銷售前 N 的商品?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板