【发布时间】:2013-03-18 22:18:16
【问题描述】:
我试图根据总销售额找出前 5 名销售人员。我想显示销售代表的姓名和他们的总销售额,我在 AdventureWorks 工作。
让我失望的是GROUP BY 声明。在下面的查询中,我不确定为什么 GROUP BY 不起作用。我确信有一种更有效的方法可以做到这一点,但此时我只是想真正学习连接和子查询,而GROUP BY 的工作方式似乎是我没有掌握的。
SELECT SalesLT.Customer.SalesPerson, SUM(repjoin.TotalDue) OVER (PARTITION BY repjoin.salesperson)
FROM SalesLT.customer INNER JOIN
(SELECT SalesLT.SalesOrderHeader.CustomerID,
SalesLT.SalesOrderHeader.TotalDue,
SalesLT.Customer.SalesPerson
FROM SalesLT.Customer
INNER JOIN SalesLT.SalesOrderHeader
ON SalesLT.SalesOrderHeader.CustomerID = SalesLT.Customer.CustomerID
) repjoin
ON SalesLT.Customer.CustomerID = repjoin.CustomerID
GROUP BY SalesLT.Customer.SalesPerson
【问题讨论】:
-
真正的问题是什么?这有帮助吗? stackoverflow.com/questions/2404565/…
-
欢迎来到 Stack Overflow!在发布问题时,请记住尽可能展示您的预期结果以及您获得的结果。
标签: sql join group-by subquery