您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL查询根据给定多条记录的不同最大值获取最大值

SQL查询根据给定多条记录的不同最大值获取最大值

SELECT
  MAX(id) id,
  po_nbr
FROM
  temp
GROUP BY
  po_nbr

要获得关联的日期,您可以这样做(请注意,这意味着需要一个顺序编号):

SELECT
  temp.id,
  temp.po_nbr,
  temp.crt_ts
FROM
  temp
  INNER JOIN (
    SELECT MAX(id) id FROM temp GROUP BY po_nbr
  ) latest ON latest.id = temp.id

如果没有序列号,它将是:

SELECT
  MAX(temp.id) id,
  temp.po_nbr,
  temp.crt_ts
FROM
  temp INNER JOIN (
    SELECT   MAX(crt_ts) crt_ts, po_nbr 
    FROM     temp i
    GROUP BY po_nbr
  ) latest ON latest.crt_ts = temp.crt_ts AND latest.po_nbr = temp.po_nbr
GROUP BY
  temp.po_nbr,
  temp.crt_ts

GROUP BY如果可以保证每个po_nbr组没有两个相等的日期,则可以忽略。

在上一个查询中建立索引crt_ts并提供po_nbr帮助,最好创建一个组合索引。

SQLServer 2022/1/1 18:53:04 有356人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶