0
我真的很困惑如何为以下语句编写查询。SQL查询 - 需要建议
如何显示具有最高销售数量(总数)和显示位置的前5名员工作为字段。请注意,如果两个员工的总销售价值相同,他们应该获得相同的职位,换句话说,前五名员工可能会返回超过5名员工?
任何人都可以为此提出答案吗?
我真的很困惑如何为以下语句编写查询。SQL查询 - 需要建议
如何显示具有最高销售数量(总数)和显示位置的前5名员工作为字段。请注意,如果两个员工的总销售价值相同,他们应该获得相同的职位,换句话说,前五名员工可能会返回超过5名员工?
任何人都可以为此提出答案吗?
喜欢的东西:
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)
。
你试过了什么?你能显示一些数据库结构吗?还有一些数据例子? – Arion 2012-04-20 10:35:08
因此,如果前五名排名中有五名以上的员工,您想如何管理?例如,如果您有一名员工有100名销售员,然后有5名员工有90名,然后有80名员工,您是否希望您的“前五名销售分数”列表中的前六名,或者是否想要放弃其中一名员工有一个“前5名销售人员”的名单,如果有的话,你有什么标准选择谁下降? – glenatron 2012-04-20 10:35:51
如果不止一名员工具有相同的总销售价值,则需要将所有员工列入“前五名”。 – manju 2012-04-20 10:39:50