SQL查询 - 需要建议

时间:2012-04-20 10:32:14

标签: sql sql-server-2005

我真的很困惑如何为以下语句编写查询。

如何显示销售额最高的前5名员工(总数)和显示位置作为字段。请注意,如果两个员工的总销售额相同,他们应该获得相同的职位,换句话说,前5名员工可能会回报超过5名员工?

任何人都可以为此提出答案吗?

1 个答案:

答案 0 :(得分:0)

类似的东西:

WITH cte AS (
    SELECT
        Rank() OVER (ORDER BY SUM(salary) DESC ) AS [Rank]
        , SUM(salary) as sum
        , Employee
    FROM 
        [table]
    GROUP BY
        Employee
)
SELECT  * 
FROM cte 
WHERE [RANK] < 5
ORDER BY sum DESC    

我重新阅读了你的问题,似乎你正在寻找最高销售额而不是薪水总和,但当然,在这种情况下你可以在OVER陈述中使用COUNT(sales)