获取超过 1 order_id 的前 1 最大行

Get top 1 max row of more than 1 order_id

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

但现在我需要在我的 table 中获取每个订单的最后一次更新时间。因此,如果我注释掉“where ordernumber = '10346497' 那么它只有 returns 一行,但我希望所有行都只包含最后一次更新的时间。 感谢您的帮助!

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

您需要按订单号进行分区,这将"restart"每个订单的编号

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