【问题标题】:Check in oracle to order [duplicate]签入oracle以订购[重复]
【发布时间】:2021-04-14 16:51:05
【问题描述】:

早安论坛。

我在 oracle 中有这个基本查询

SELECT P.IDPROYECT, P.NOPROGRAM, P.IDETAP, P.STATUS_ETAP, P.VERSION
FROM poa.PROYECT P
LEFT JOIN DGI.DEPENDENCIA UA ON (P.RAM = UA.RAM AND P.DEPT = UA.DEPT AND UA.YEAR = 2021);

我被一系列记录所吸引,所以 noprogram 重复了 3 次,但唯一不同的是这 3 个的版本更新,我希望它只显示 3 个记录中的 1 个更高的记录版本

【问题讨论】:

    标签: sql oracle greatest-n-per-group


    【解决方案1】:

    如下使用row_number

    select * from
    (SELECT P.IDPROYECT, P.NOPROGRAM, P.IDETAP, P.STATUS_ETAP, P.VERSION,
           ROW_NUMBER() OVER (PARTIRION BY P.NOPROGRAM ORDER BY P.VERSION DESC) AS RN
      FROM poa.PROYECT P
      LEFT JOIN DGI.DEPENDENCIA UA
        ON (P.RAM = UA.RAM AND P.DEPT = UA.DEPT AND UA.YEAR = 2021)
    ) Where rn = 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 2019-08-12
      • 2017-03-24
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多