【问题标题】:Select unique records by comapring one column values in a particular order in Oracle SQL通过在 Oracle SQL 中以特定顺序组合一列值来选择唯一记录
【发布时间】:2021-07-21 20:47:36
【问题描述】:

我有一个包含列(状态、时间戳和其他)的表格,如下所示: 我想获取所有状态按日期顺序更改顺序的记录

回复应该是这样的:

【问题讨论】:

  • 其他列是什么意思?哪一列需要分组?时间戳?
  • 别看其他列..,id 是主键,status 是我有兴趣比较(与以前)和日期/时间戳进行排序

标签: sql oracle oracle11g oracle10g


【解决方案1】:

您可以使用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;

【讨论】:

    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    相关资源
    最近更新 更多