【发布时间】:2021-07-21 20:47:36
【问题描述】:
我有一个包含列(状态、时间戳和其他)的表格,如下所示: 我想获取所有状态按日期顺序更改顺序的记录
回复应该是这样的:
【问题讨论】:
-
其他列是什么意思?哪一列需要分组?时间戳?
-
别看其他列..,id 是主键,status 是我有兴趣比较(与以前)和日期/时间戳进行排序
标签: sql oracle oracle11g oracle10g
我有一个包含列(状态、时间戳和其他)的表格,如下所示: 我想获取所有状态按日期顺序更改顺序的记录
回复应该是这样的:
【问题讨论】:
标签: sql oracle oracle11g oracle10g
您可以使用lag(),并且只保留值发生变化的行:
select t.*
from (select t.*,
lag(status) over (order by date) as prev_status
from t
) t
where prev_status is null or prev_status <> status
order by date desc;
【讨论】: