我遇到一种情况,只有一张票证历史记录表。它保存针对票证执行的所有操作。如何编写一个查询,该查询将返回特定票证的第一条记录和最后一条记录。
例如,在上表中,我有一张 id 78580 的票。我想根据日期列获取第一行和最后一行。
只需使用row_number():
select t.*
from (select t.*,
row_number() over (partition by ticket_id order by action_when asc) as seqnum_a,
row_number() over (partition by ticket_id order by action_when desc) as seqnum_d
from tickets t
) t
where seqnum_a = 1 or seqnum_d = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1272 次 |
| 最近记录: |