SQL 表中查询其中一个字段相同,另外一字段取最大值的语句,并且附带第三个字段
例如:字段1,字段2,字段31A1001B9002C1002D6002A50想得到的结果是:1B1002D600结果弄错了,重发例如:字段1,字段2,字段31A1001B...
例如:字段1,字段2,字段3
1 A 100
1 B 900
2 C 100
2 D 600
2 A 50
想得到的结果是:
1 B 100
2 D 600
结果弄错了,重发
例如:字段1,字段2,字段3
1 A 100
1 B 900
2 C 100
2 D 600
2 A 50
想得到的结果是:
1 B 900
2 D 600 展开
1 A 100
1 B 900
2 C 100
2 D 600
2 A 50
想得到的结果是:
1 B 100
2 D 600
结果弄错了,重发
例如:字段1,字段2,字段3
1 A 100
1 B 900
2 C 100
2 D 600
2 A 50
想得到的结果是:
1 B 900
2 D 600 展开
2个回答
展开全部
create table #test(id int,a varchar(100),b int);
insert into #test values (1,'a',100)
insert into #test values (1,'b',200)
insert into #test values (2,'A',100)
insert into #test values (2,'B',500)
insert into #test values (2,'D',500)
select * from #test aa where not exists (select 1 from #test bb where aa.id=bb.id and aa.b<bb.b) 如果最大值有两个,都会出来。这个是局限。
select tt.id,tt.a,tt.b from (select id,a,b,row_number() over (order by b desc) rn from #test ) tt where rn=1 这个适合2005以上版本
insert into #test values (1,'a',100)
insert into #test values (1,'b',200)
insert into #test values (2,'A',100)
insert into #test values (2,'B',500)
insert into #test values (2,'D',500)
select * from #test aa where not exists (select 1 from #test bb where aa.id=bb.id and aa.b<bb.b) 如果最大值有两个,都会出来。这个是局限。
select tt.id,tt.a,tt.b from (select id,a,b,row_number() over (order by b desc) rn from #test ) tt where rn=1 这个适合2005以上版本
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询