选择某个属性值最大的那条记录(不仅仅包含指定属性,而是想要什么属性都可以)

来源:互联网 发布:mac的ps怎么导入字体 编辑:程序博客网 时间:2024/05/29 06:45

好久好久不写SQL了,技能退化严重啊!!!

 

直入主题:

比如我有一张表,file_info,

它有两个属性(但实际不只,我这里只是作说明用):

file_code, file_version

同一个code可能对应多个version

现在,我想针对每一个code,取得它相关的记录中,version 值 最大的那条记录,

SQL如下:

select     *from    file_info fi1where    file_version = (select             max(fi2.file_version)        from            file_info fi2        where            fi2.file_code = fi1.file_code);

或者

select   fi1.*from  (select     fi2.file_code,     max(fi2.file_version) as file_version   from     file_info fi2   group by      fi2.file_code  ) as x,    file_info as fi1where    x.file_code=fi1.file_code    and    x.file_version=fi1.file_version;


在网上看了好几个,都不知道他们有没有试过,明显是错的。

 

我上面的SQL是验证过的,而且我觉得有SQL基础的人一眼就看明白了的。

有问题的话,请留言。

0 0