zoukankan      html  css  js  c++  java
  • left join取右边第一条数据

    有一个这样的需求:

     左连接取右边的一条时间最大的一条数据

    如果写成:

    SELECT * FROM ACT_HI_COMMENT WHERE PROC_INST_ID_  in (4811676,4511941)  GROUP BY PROC_INST_ID_ ORDER BY proc_inst_id_,TIME_ desc
    

    可是实际情况 group by 先执行,order by后执行,结果就是讲group by后的数据排序而已.

    这里的方法是再加一层group by ,因为group 默认是取第一条数据的

    SELECT * FROM (
    
    -- 取出时间最新的一条记录
    SELECT * FROM ACT_HI_COMMENT WHERE PROC_INST_ID_  in (4811676,4511941)  ORDER BY proc_inst_id_,TIME_ desc
    ) t 
    GROUP BY t.proc_inst_id_

    结果就是:

  • 相关阅读:
    快速幂求模
    elasticSearch入门
    springboot 停止
    gson
    jetty 入门
    redis工具
    oracle数据库操作
    Spring事务控制和回滚
    SPI
    PLSQLDeveloper_免安装自带client
  • 原文地址:https://www.cnblogs.com/sunxun/p/13895722.html
Copyright © 2011-2022 走看看