如何在子查询中插入MAX函数?(SQL Server)

西巴姆人

我有以下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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章