我真的很困惑如何为以下语句编写查询。
如何显示销售额最高的前5名员工(总数)和显示位置作为字段。请注意,如果两个员工的总销售额相同,他们应该获得相同的职位,换句话说,前5名员工可能会回报超过5名员工?
任何人都可以为此提出答案吗?
答案 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)
。