【问题标题】:How to check changes in column values?如何检查列值的变化?
【发布时间】:2022-01-24 13:17:52
【问题描述】:

我需要尝试检查一些设备 ID 是否有效。这些值(15 个字符,随机数字字符串 + 字母)对于用户来说大多保持不变。但是,这些设备 ID 会时不时地发生变化。我正在尝试检测它们何时发生变化。有没有办法用 SQL 编写这种动态查询?说,也许用 CASE 语句?

user device date
1 23127dssds1272d 10-11
1 23127dssds1272d 10-11
1 23127dssds1272d 10-12
1 23127dssds1272d 10-12
1 04623jqdnq3000x 10-12

【问题讨论】:

    标签: sql google-bigquery bq


    【解决方案1】:

    通过 id 计数 > 1 来计算不同的设备?

    【讨论】:

    • 啊,你知道这行得通。
    【解决方案2】:

    考虑以下方法

    select *
    from your_table
    where true 
    qualify device != lag(device, 1, '') over(partition by user order by date)    
    

    如果应用于您问题中的样本数据 - 输出是

    正如您在此处看到的 - 在 10-11 第一次“更改,分配”发生在 user=1 ;然后在10-12他的设备改变了

    【讨论】:

      猜你喜欢
      • 2019-12-20
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 2011-12-03
      • 2017-07-17
      • 1970-01-01
      相关资源
      最近更新 更多