SQLServer-按字段分組后取日期最新的一條


sql 按字段分組后取日期最新的一條

第一種方式over(partition by)

select  t.* from (
    select a.*, row_number() over(partition by 需要分組的字段 order by 更新時間 desc) rw 
from 表 a) t where t.rw = 1;

第二種方式MAX(日期)

select t1.* from 表 t1 inner join (
   SELECT max(create_date) as create_date, 需要分組的字段mark
   FROM 表 group by mark
) t2 on t1.create_date=t2.create_date and t1.mark=t2.mark

 

第一種在數據量比較大的時候很慢,第二種反而更快,建議選擇第二種


免責聲明!

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



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