tsql - 使用MAX并返回具有最大列值的整行

标签 tsql sql-server-2008

我是SQL的新手,正在努力寻找适合我的MAX情况的可行解决方案。

我目前有一个表格,看起来像:

ID   Date         Version
001  2010-11-17   2
001  2010-12-01   3
002  2011-01-11   1
002  2011-05-05   2

我想要的结果很简单:
ID   Date        Version
001  2010-12-01  3
002  2011-05-05  2

我不能在日期上使用MAX和GROUP BY,因为Date没有区别。

最佳答案

这应该可以完成以下工作:

SELECT     ID,
           Date,
           Version
FROM       YourTable
INNER JOIN 
(
    SELECT    ID,
              Max(Version)
    FROM      YourTable
    GROUP BY  ID
) AS x
ON         YourTable.ID = x.ID
AND        YourTable.Version = x.Version

关于tsql - 使用MAX并返回具有最大列值的整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6520036/

相关文章:

sql-server - 当它是强制参数时,如何在不显式写入数据库名称的情况下编写通用脚本

sql - 下个月的第一天

sql - 将单个 sql server 行存储在变量中,然后使用列值构建查询

sql-server - 如何使用 SQL 从文字中获取变量值?

sql - 仅对所有数据进行透视列更改

sql - 使用相关子查询或连接而不是派生表

sql-server - SQL Server 2008 中的用户定义聚合 - 如何使用 MaxByteSize = -1 进行部署?

sql - SQL将登录名映射到现有用户

sql字符编码非英文字符

sql-server - 动态 SQL(将表名作为参数传递)