【问题标题】:How do I obtain a listing from an SQL table of price changes如何从价格变化的 SQL 表中获取列表
【发布时间】:2020-09-30 23:49:17
【问题描述】:

我有一个包含发票详细数据的简单表格。例如,我需要运行一个返回价格变化的查询

【问题讨论】:

    标签: sql datetime window-functions gaps-and-islands


    【解决方案1】:

    这是一个间隙和孤岛问题,您可以在其中构建具有相同价格的“相邻”行组。

    我认为这里最简单的方法是使用行号之间的差异来构建组:

    select itemno, state, price, min(rcv_date) frst_date, max(rcv_date) last_date
    from (
        select t.*, 
            row_number() over(partition by item_no, state order by rcv_date) rn1,
            row_number() over(partition by item_no, state, price order by rcv_date) rn2
        from mytable t
    ) t
    group by item_no, state, price, rn1 - rn2
    

    【讨论】:

      猜你喜欢
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 2020-08-11
      • 2016-03-11
      • 1970-01-01
      相关资源
      最近更新 更多