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