有以下三个字段f1、f2、f3,内容如下
f1 f2 f3
A 7 230
A 8 460
A 9 580
B 7 258
B 8 468
C 7 563
C 9 587
现在要得到以下结果
f1 f2 f3
A 9 580
B 8 468
C 9 587
即按照f1进行分组,组内取f2最大的那条记录。此语句怎样写,请大家帮帮忙忙,我想直接用SQL搞定。
谢谢!
...全文
384打赏收藏
如此条件的查询,其SQL语句该怎样写
有以下三个字段f1、f2、f3,内容如下 f1 f2 f3 A 7 230 A 8 460 A 9 580 B 7 258 B 8 468 C 7 563 C 9 587 现在要得到以下结果 f1 f2 f3 A 9 580 B 8 468 C 9 587 即按照f1进行分组,组内取f2最大的那条记录。此语句怎样写,请大家帮帮忙忙,我想直接用SQL搞定。 谢谢!
--数据测试环境
declare @t table(f1 varchar(1),f2 int,f3 int)
insert into @t
select 'A',7,230
union all select 'A',8,460
union all select 'A',9,580
union all select 'B',7,258
union all select 'B',8,468
union all select 'C',7,563
union all select 'C',9,587
--查询
select * from @t a where f2=(select max(f2) from @t where a.f1=f1)
order by f1
/*--结果:
f1 f2 f3
---- ----------- -----------
A 9 580
B 8 468
C 9 587