mysql group by組內排序


mysql group by組內排序:
    首先是組外排序:
    SELECT z.create_time,z.invoice_id from qf_invoice_log z where z.type =102 GROUP BY z.invoice_id ORDER BY z.create_time DESC;
    先根據查詢的結構分組,分組的結果會使同一條件的數據展示最先插入的一條,id最小的保留下來。
    可以看一個例子:

 

所以如果你的需求是排序前要找到同一條件最后一條記錄,采用先group by在order by 是不准確的。
正確的方法是先根據時間進行排序,再進行分組,最后再進行排序。
select t1.create_time,t1.invoice_id
        from (SELECT z.* from qf_invoice_log  z ORDER BY z.create_time DESC ) t1 where t1.type =102  GROUP BY t1.invoice_id ORDER BY t1.create_time DESC;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM