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

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以上版本
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-13
select * from table1 t1
where not exists
(select * from table1 where 字段1=t1.字段1 and 字段3>t1.字段3)本回答被提问者采纳

【SQL】根据一个字段分组求另一个字段的最大值,并带出其他字段
dense_rank与rank相同,都会给相同值给出序列1,但是会顺延序号,排序第二的会给出序号2,不同的话可以参考: https:\/\/www.cnblogs.com\/heyang78\/p\/12684869.html 使用concat函数将分组字段和聚合字段拼接作为查询条件,但聚合字段有多个相同值的时候会带出多条。 eg:多个最大值 有其他好方法可以互...

用sql语句实现在同一张表中找到1个字段相同,另1个字段不同的记录
select 字段1, wmsys.wm_concat(字段2) from 表group by 字段1 追问 #1305 - FUNCTION wmsys.wm_concat does not exist 出现这个错误 追答 厄,目测你这是SQL SERVER如果有其它列做标识,可以用在子查询中使用union来连接如果没有标识,只好用存储过程来实现了可以看下面的参考 参考资料: http:\/\/www.cnblogs...

...SQL语句如何查询一个表中一个字段的值相同,另外一个字段的值不同...
if object_id('table1') is not null begin drop table table1 end go create table table1 (a int ,b int)go insert into table1 select 1,1 union select 1,2 union select 1,3 union select 2,1 go SELECT a.* from table1 a where exists(select * from table1 b where a....

查询SQL数据库中其中一个字段有重复记录,在根据重复记录返回另一...
order by NAME

sql怎么查某个字段相同的数据
select * from 表名 where 数据相同的字段 in (select 数据相同的字段 from (select *,ROW_NUMBER() over (partition by 数据相同的字段 order by 数据相同的字段) num from 表名 ) a where a.num>1)

用sql语句实现在同一张表中找到1个字段相同,另1个字段不同的记录
select distinct x.字段一,x.字段二 from a as x,a as Y where x.字段一=y.字段一 and x.字段二!=y.字段二 其中,x和y是a表的别称,这个原来是用来查询至少选修两门课程的学生,我改成了这样,也就意味着查询结果可能有多个,因为万一有三个,他们之间就是两两不相同的,也符合这个条件 ...

SQL查找某一字段相同,某一字段不同的数据
1、在我们的电脑上打开数据库,这里新建一张含有重复数据的user表做示例。2、我们输入“select * from user where name in (select name from user group by name having count(name) > 1) ”sql语句,点击运行可以看到查询出了数据库中user表的重复数据。3、通过“delete from user where name...

SQL语句,查询一个表中一个字段重复值,并把重复值的所有值列出,怎么写...
可使用如下语句,其中col 为重复值的字段名 select * from t where col in(select col from t as t2 group by col having count(*) > 1);或 select T.* from T join (select col from T group by col having count(*) > 1) as T2 on T.col= T2.col ...

用sql语句实现在同一张表中找到1个字段相同,另1个字段不同的记录
如果是sql server 2005以下,可以用如下方式来实现 select t.col1,stuff((select '、'+ convert(varchar(10),t1.col2)from A t1 where t1.col1= t.col1 for xml path('')),1,1,'') as col2 from A t group by t.col1

...SQL语句如何查询一个表中一个字段的值相同,另外一个字段的值不同...
假设表名为table,相同字段为C,不同字段为D select * from table as A ,table as B where A.C=B.C and A.D<>B.D

相似回答