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;