Sql 获取超过1个订单id的最大1行

Sql 获取超过1个订单id的最大1行,sql,oracle11g,greatest-n-per-group,Sql,Oracle11g,Greatest N Per Group,下面的代码用于获取订单号10346497的最后更新行,这正是我想要的 但现在我需要得到表中的每一个订单,以及它上次更新的时间。因此,如果我注释掉“where ordernumber='10346497',那么它只返回一行,但我希望所有行都有它上次更新的时间。 谢谢你的帮助 SELECT * FROM ( SELECT WH1.*, row_number() over(order by ORDERDATETIME desc) RN

下面的代码用于获取订单号10346497的最后更新行,这正是我想要的

但现在我需要得到表中的每一个订单,以及它上次更新的时间。因此,如果我注释掉“where ordernumber='10346497',那么它只返回一行,但我希望所有行都有它上次更新的时间。 谢谢你的帮助

  SELECT * FROM (
                  SELECT WH1.*, row_number() over(order by ORDERDATETIME desc) RN
                  FROM WH_ORDERS_REPORT WH1
                  WHERE ORDERNUMBER = '10346497'
                  )
  WHERE RN = 1

您需要按ordernumber进行分区,这将“重新启动”每个订单的编号

select * 
from (
  select wh.*, 
         row_number() over (partition by wh.ordernumber order by wh.orderdatetime desc) rn
  from wh_orders_report wh
)
where rn = 1

我相信这是可行的。我会继续测试和验证。谢谢。