使用 SQL 查找每个组的前 N 个售出商品
问题陈述:
给定包含销售记录的表格,包括每件已售商品的 UPC 代码、销售日期、商店 ID 和总计美元销售额,目标是在单个 SQL 查询中检索每个商店销量最高的 5 件商品。
解决方案:
使用通用表表达式 (CTE)语法中,我们可以创建一个名为 's' 的临时表,根据总销售额对每个商店内的顶级商品进行排名。随后,我们可以使用行号过滤器为每个商店选择前 5 个商品。
;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;
说明:
以上是如何使用 SQL 查找每个商店前 5 个最畅销商品?的详细内容。更多信息请关注PHP中文网其他相关文章!