不好意思,还有一点最重要的没说明:按ID及NAME分组,即我要得到的记录为: Id Name Rev -------------------------- 1 ccc 32 gggi 4
select * from 表 where id||rev in(select distinct id||max(rev) from 表 group by id); 查出的只有 1 ccc 3 和 2 gggi 4, 是不是你所要求的。
你是按ID分组吧,要是ID,NAME分组的话因为name不同,如:select * from 表 where rev in(select max(rev) from 表 group by id,name);所有记录都是满足条件的
--分组与查询记录最大的慨念是不同的.--如果是分组: select id,name,max(rev) from 表 group by id,name --如果是查询记录最大的: select * from 表 a where rev=(select max(rev) from 表 where id=a.id and name=b.name)
Id Name Rev
--------------------------
1 aaa 1
1 bbb 2
1 ccc 3
2 eee 1
2 ffff 2
2 gggk 3
2 gggi 4就只能查出一条记录,而查不出2条的??
请继续help
Id Name Rev
--------------------------
1 ccc 32 gggi 4
是不是你所要求的。
select id,name,max(rev) from 表 group by id,name
--如果是查询记录最大的:
select * from 表 a where rev=(select max(rev) from 表 where id=a.id and name=b.name)