【问题标题】:Oracle :Get Value based on a previous record based on periodOracle :基于期间的先前记录获取价值
【发布时间】:2015-05-22 12:18:59
【问题描述】:

出于安全原因,我删除了表名。对不起

【问题讨论】:

    标签: sql oracle window-functions


    【解决方案1】:

    您需要指定lag 以分别处理每个pgm_id,并带有partition by 子句:

    CREATE OR REPLACE FORCE VIEW HCRS.PGM_MEDI_LIVES_V
    (
       PGM_ID,
       PERIOD_ID,
       MEDI_COV_LIVES,
       PREV_MEDI_COV_LIVES
    )
    AS
       SELECT 
             pgm_id,
             pml.period_id,
             medi_cov_lives,
             LAG (medi_cov_lives, 1, 0)
                 OVER (PARTITION BY pml.pgm_id ORDER BY pml.period_id)
                 AS pre_medi_cov_lives
         FROM PGM_MEDI_LIVES pml;
    

    【讨论】:

      【解决方案2】:

      我觉得你需要加partition by:

      SELECT pgm_id, pml.period_id, medi_cov_lives,
             LAG(medi_cov_lives, 1, 0)
                OVER (PARTITION BY pgm_id ORDER BY pml.pgm_id, pml.period_id
                     ) AS pre_medi_cov_lives
      FROM <table> pml;
      

      【讨论】:

        猜你喜欢
        • 2020-01-31
        • 1970-01-01
        • 2014-01-12
        • 1970-01-01
        • 2018-04-06
        • 1970-01-01
        • 2021-04-03
        • 1970-01-01
        • 2021-02-06
        相关资源
        最近更新 更多