我有下表:
从select
语句我想要的是每个policy
的最新唯一行(绿色)。有些原因policy
信息将来自前一天(所有policies
将不会在同一天发布)。
在这种情况下,ACB1
已更改了她last names
和amounts
已更改。
答案 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()