我们使用数据库来捕获交易/交易,我需要找出哪一个是最新的交易。
Action
设置为“插入”,列Modified
设置为“否”。Action
=“ Delete”;Modified
=“是”且Action
=“插入”;Modified
=“是”。Action
=“ Delete”;Modified
=“否”以下是一些示例:
Record
1。Record
4。Record
11。谢谢,丹尼尔
[If我正确地关注了您,您可以使用子查询过滤每个交易的最新记录,然后忽略最后一个状态为删除的交易:
select t.*
from mytable t
where
t.record = (select max(t1.record) from mytable t1 where t1.dealID = t.dealID)
and t.action <> 'Delete'
就您而言,您不需要使用列modified
即可获得所需的结果。
为了获得此查询的性能,请考虑(dealID, record, action)
上的索引。
如果数据库支持窗口功能,也可以用row_number()
表示:
select record, action, modified, dealID
from (
select t.*, row_number() over(partition by dealID order by record desc) rn
from mytable t
) t
where action <> 'Deleted'