SQL 分组取最新的一条数据的方法

    SELECT biz_id AS leads_id 
    ,gmt_create AS leads_complete_time
    FROM kbods.ods_kbleadscenter_biz_log AS b
    WHERE dt='${bizdate}'
    AND action='completeLeads'
    AND NOT EXISTS (
                    SELECT  1
                    FROM    kbods.ods_kbleadscenter_biz_log
                    WHERE   biz_id = b.biz_id
                    AND     dt='${bizdate}'
                    AND     action='completeLeads'
                    AND     b.gmt_create < gmt_create
                )-- 取log中最新的一条记录

对这段代码的理解,需要先明确SQL的执行顺序

开始 -> FROM子句 -> WHERE子句 -> GROUP BY子句 ->

HAVING子句 -> ORDER BY子句 -> SELECT子句 -> LIMIT子句 -> 最终结果 

发布了25 篇原创文章 · 获赞 38 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/zhixiting5325/article/details/103560880
今日推荐