【问题标题】:Last record based on 2 column values基于 2 列值的最后一条记录
【发布时间】:2013-07-18 21:07:34
【问题描述】:
pass_id retry_id
1       1
1       2
2       1
2       2
2       3
3       1
3       2

需要在 MAX(pass_id) 内提取 MAX(retry_id) 的记录。

pass_id retry_id
3       2

提前致谢!

【问题讨论】:

    标签: sql oracle max multiple-conditions


    【解决方案1】:

    最简单的方法是使用order by 并只选择一行:

    select t.pass_id, t.retry_id
    from (select t.*
          from t
          order by pass_id desc, retry_id desc
         ) t
    where rownum = 1
    

    Here 是一个 SQLFiddle。

    【讨论】:

      【解决方案2】:
      SELECT * 
      FROM MyTable
      WHERE
         retry_id = (Select MAX(retry_id) FROM MyTable) AND 
         pass_id = (Select MAX(pass_id) FROM MyTable)
      

      【讨论】:

        【解决方案3】:

        对 oracle 语法不肯定,但类似

        SELECT MAX(retry_ID)
        FROM Table
        WHERE Pass_ID = (SELECT MAX(Pass_ID)
                         FROM Table)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-08-12
          • 2020-05-19
          • 2016-10-08
          • 1970-01-01
          • 1970-01-01
          • 2021-01-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多