0

次のステートメントのクエリを作成する方法が本当に混乱しています。

売上高(合計)が最も多い上位5人の従業員を表示し、フィールドとして位置を表示する方法。両方の従業員の合計売上高が同じである場合、同じポジションを受け取る必要があることに注意してください。つまり、上位5人の従業員が5人以上の従業員を返す可能性があります。

誰でもこれに対する答えを提案できますか?

4

1 に答える 1

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    

質問を読み直しましたが、給与の合計ではなく売上のトップカウントを探しているようですが、もちろん、その場合COUNT(sales)はOVERステートメントで使用できます。

于 2012-04-20T11:01:47.957 に答える