我有以下SQL代码,它显示了每个扇区每个卖家的销售数量。
SELECT
[JO_Info].Name, [Proc].Sector, COUNT([JO].JO_ID) AS total
FROM
[JA]
INNER JOIN
[Proc] ON [JA].ProcessID = [Proc].ProcessID
INNER JOIN
[JO] ON [JA].JO_ID = [JO].JO_ID
INNER JOIN
[JO_Info] ON [JO].JOI_ID = [JO_Info].JOI_ID
WHERE
([JO].JO_ID = 'seller')
GROUP BY
[JO_Info].Name, [Proc].Sector
输出如下:
Name | Sector | total
-----------+---------+----------
Grace | 1 | 4
Elizabeth | 2 | 1
Bette | 3 | 3
Angelina | 4 | 6
Karl | 4 | 1
Alberto | 13 | 1
Jorge | 15 | 1
但我希望每个部门销售更多的卖家。所以,我的问题是如何插入MAX函数以获得以下结果(扇区中没有重复)。
Name | Sector | total
-----------+---------+----------
Grace | 1 | 4
Elizabeth | 2 | 1
Bette | 3 | 3
Angelina | 4 | 6
Alberto | 13 | 1
Jorge | 15 | 1
你可以使用row_number()
:
with t as (<your query here>)
select t.*
from (select t.*, row_number() over (partition by sector order by total desc) as seqnum
from t
) t
where seqnum = 1;