SQL视图,Grouping + inner连接相同的表

问题描述 投票:0回答:1

This is my table:

使用此查询,我获得了大多数销售商品:

SELECT [Purchased Item], SUM([Overall Quantity purchased] )
FROM ReportDraft 
GROUP BY [Purchased Item]
ORDER BY SUM([Overall Quantity purchased] )

这将返回客户购买的物料和总数量。

我怎么能像这样创建一个表

ItemName | Total quantity purchased | Customer who purchased most | Customer quantity bought

Pie--------|---------6------------|---------------Tonya----------|--------4------------|
Big Burger-|---------3------------|---------------Tonya----------|--------3------------| and etc

谢谢

sql database window-functions
1个回答
0
投票

为什么你发布一个新问题而不是点头/扩展previous one

WITH cte AS
 (
   SELECT [Purchased Item], 

      -- quantity per item
      SUM(SUM([Overall Quantity purchased]))
      OVER (PARTITION BY [Purchased Item]) AS "Total quantity purchased",

      [Customer name],

      -- quantity per item/customer
      SUM([Overall Quantity purchased]) AS customer_qantity,

      -- rank the customer quantity per item
      ROW_NUMBER()
      OVER (PARTITION BY [Purchased Item]
            ORDER BY SUM([Overall Quantity purchased]) DESC) AS rn
   FROM ReportDraft 
   GROUP BY [Purchased Item], [Customer name]
 )
SELECT *
FROM cte
WHERE rn = 1
ORDER BY "Total quantity purchased" DESC
© www.soinside.com 2019 - 2024. All rights reserved.