使用SQL查询从表中选择最新结果

时间:2015-06-10 09:26:20

标签: sql sql-server tsql

我有下表:

Data Table

select语句我想要的是每个policy的最新唯一行(绿色)。有些原因policy信息将来自前一天(所有policies将不会在同一天发布)。

在这种情况下,ACB1已更改了她last namesamounts已更改。

3 个答案:

答案 0 :(得分:2)

这将通过id列获取每个策略的最新行:

    SELECT  id, policy, first, last, amount, created
    FROM    yourtable yt
            INNER JOIN
            (SELECT policy,MAX(id) as id
            FROM yourtable
GROUP BY policy) maxid ON yt.policy = maxid.policy 
                                    AND yt.id = maxid.id

答案 1 :(得分:1)

使用row_number窗口功能:

select * from 
  (select *, row_number() over(partition by policy order by id desc) rn from TableName) t
where rn = 1

答案 2 :(得分:0)

如果您选择了where ID=MAX()而不是从数据库中选择所有字段,而不是选择最大ID。

所以你会:

SELECT `id`,`firstname`,`lastname`,`policy`,`amount`,`created` 
FROM `tablename` WHERE `id`=MAX()