繁体   English   中英

总销售额排名前5位的销售人员

[英]Top 5 Sales people with their total sales

我正在尝试根据他们的总销售额找到前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

为什么不简单

SELECT TOP 5
  c.SalesPerson, 
  SUM(soh.TotalDue) TotalSales
FROM
  SalesLT.Customer c
  INNER JOIN SalesLT.SalesOrderHeader soh ON soh.CustomerID = c.CustomerID
GROUP BY 
  c.SalesPerson
ORDER BY
  SUM(soh.TotalDue) DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM