SQL 表中查询其中一个字段相同,另外一字段取最大值的语句,并且附带第三个字段

例如:字段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
最新回答
死在新鲜感

2024-10-17 11:24:52

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以上版本
浪菊怪哟

2024-10-17 12:43:21

select * from table1 t1
where not exists
(select * from table1 where 字段1=t1.字段1 and 字段3>t1.字段3)