我有以下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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句