sqlserver 如何求出分组后每组的第一行

紫仑天玑
2012-11-07 · 萝卜数学关注思维过程
紫仑天玑
采纳数:324 获赞数:888

向TA提问 私信TA
展开全部
SQL2005写法。
例如求出每个部门最高薪酬的人员信息。跟你每组第一行的要求很类似吧!

Declare @Employee table (ID int ,Dept int ,Salary decimal(10,2))
insert into @Employee values(1,10,5500.00)
insert into @Employee values(2,10,4500.00)
insert into @Employee values(3,20,1900.00)
insert into @Employee values(4,20,4800.00)
insert into @Employee values(5,40,6500.00)
insert into @Employee values(6,40,14500.00)
insert into @Employee values(7,40,44500.00)
insert into @Employee values(8,50,6500.00)
insert into @Employee values(9,50,7500.00)
--SELECT * FROM @Employee
SELECT
ID,Dept,Salary
FROM
(
SELECT
ROW_NUMBER() OVER (partition by Dept ORDER BY Salary desc) as Rank,
ID,Dept,Salary
FROM @Employee
) M
WHERE Rank=1
-----
执行结果:
---------
1 10 5500.00
4 20 4800.00
7 40 44500.00
9 50 7500.00
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式