哪位兄弟帮我根据下规则写条sql查询语句

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:03:03
哪位兄弟帮我写条sql查询语句,规则如下:
product表 字段(id、class1、class2、version)
id class1 class2 version
1 A a 1
2 A a 2
3 A b 1
4 B c 1
5 C d 1
6 C d 2
7 C d 3
8 D e 1

说明:有两个类class1 和class2 ,class2有多个版本version,
class2和version是联合索引/键关系。
现在要求求一组class2列表,但是相同class2的只要version(int(4))最大的那条记录
如上记录求出的结果应该为:

id class1 class2 version
1 A a 2
3 A b 1
4 B c 1
7 C d 3
8 D e 1

id=1 和id=2的class2相同,取version大的那条id=2
simenyu的基本符合但是有错误:class1不包括在聚合函数中,也不是group by的内容

select id,class1,class2,max(version) version
from product
group by class2

补充:你说的没错,是我的疏忽.
这个问题可以通过建立一个临时表来解决.
参考以下代码:
if object_id('tmp','u') is not null
drop table tmp
go
select class2,max(version) version into tmp
from product
group by class2

select product.id,product.class1,product.class2,product.version
from product
join tmp
on tmp.class2=product.class2 and tmp.version=product.version

drop table tmp