【问题标题】:SQL State change identifierSQL 状态更改标识符
【发布时间】:2021-07-29 21:22:13
【问题描述】:

我有一个非常不寻常的问题 我需要比较两列之间的状态变化因子 第 1 列

在 1 和 0 中有设备报告的值(1 表示活动,0 表示不活动)。

第 1 列报告重复值,这意味着每分钟报告一次值第 1 列报告值,即使没有变化,例如:上午 9 点第 1 列获得值 1,并将其添加到条目中

在 9:02 再次出现值 1,它再次将该条目添加到第 1 列中。

在 9:03 值为 0 时,它添加条目。

在 9:04,该值再次为 0,它再次记录该条目

第 1 列

9:00AM    -    1
9:02AM    -    1
9:03AM    -    0
9:04AM    -    1
9:05AM    -    1  
9:06AM    -    0

另一方面,第 2 列仅在其与前一个值不匹配时报告值

第 2 列

9:00AM - 1
9:03AM - 0
9:04AM - 1
9:06AM - 0

我正在查看第 1 列和第 2 列之间的状态变化因子是否相等意味着第 1 列中值更改的次数是否等于第 2 列中值更改的次数 例如:在第 1 列中,值更改的次数为 2,与第 1 列相同。但第 1 列中的条目为 6,第 2 列中的条目为 4。所以我希望得到与条目无关的结果和仅基于值更改的次数

并希望在 python 或 SQL 中得到它 如果有人可以帮忙,请帮忙

【问题讨论】:

    标签: python sql postgresql


    【解决方案1】:

    我想你只是想要lag():

    select t.*
    from (select t.*,
                 lag(col2) over (order by col1) as prev_col2
          from t
         ) t
    where col2 is distinct from prev_c9l2
    

    【讨论】:

      猜你喜欢
      • 2021-02-17
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 2012-08-21
      • 1970-01-01
      相关资源
      最近更新 更多