mssql sqlserver sql數據分組后,取分組后最新一條記錄的方法分享


轉自:http://www.maomao365.com/?p=8223


 

 

摘要:

 

    下文講述對通過舉例的方式分享,“sql分組后,取最新一條記錄的方法”,如下所示:

 

     實驗環境:sql server 2008 R2 

 


 

例:

 

  取銷售訂單中,每個客戶最近的一條訂單記錄。

 

 實驗思路:

 

  使用row_number() 對數據進行群組,群組內按照訂單日期倒序排序,並生成新的群組內編號  

 

 
 create table [maomao365](orderNo varchar(30),custName nvarchar(30),
     qty int, amount decimal(18,2),
     orderDate datetime)
    go
    ---生成訂單數據
    insert into [maomao365](orderNo,custName,qty,amount,orderDate)
     values
     ('001','深圳A集團',8,10,'2018-1-1'),
     ('002','深圳A集團',7,1008,'2018-1-2'),
     ('003','深圳C集團',6,100,'2018-1-3'),
     ('004','深圳C集團',12,1090,'2018-1-4'),
     ('005','深圳B集團',5,108,'2018-1-5'),
     ('006','深圳B集團',16,190,'2018-1-6'),
     ('007','深圳D集團',10,90,'2018-1-7'),
     ('008','深圳D集團',4,40,'2018-1-8'),
     ('009','深圳E集團',6,60,'2018-1-9')
     go
     ---顯示每個客戶最新一條訂單記錄
     select * from 
     (
       select row_number() over(partition by [custName] order by [orderDate] desc ) as keyId,* from [maomao365]   
     )
     as t 
     where t.keyId =1 
    go
    
   go 
   truncate table [maomao365]
   drop       table [maomao365]

 

 


免責聲明!

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



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