Search code examples
sqlsql-serverwhere-clausegreatest-n-per-group

get max ID row from individual rows in sql server


I Have data like below with multiple rows with same data which can be identified by ID.

enter image description here

I Need the data like below. Get only individual max ID value for every set of duplicate records with can be done by taking individual max ID

enter image description here

Can you help me on this?


Solution

  • This should help you

    
    create table #sample (type char(1), date datetime, Id bigint)
    insert into #sample values('A', '5/22/2019 4:33', 1065621)
    insert into #sample values('A', '5/22/2019 4:33', 1065181)
    insert into #sample values('A', '5/22/2019 4:33', 1064212)
    insert into #sample values('B', '11/7/2017 1:07', 540180)
    insert into #sample values('B', '11/7/2017 1:07', 540179)
    insert into #sample values('B', '11/7/2017 1:07', 540177)
    
    select * from #sample
    
    select [type], [date], max(id)
    from #sample
    group by [type], [date]
    
    select distinct [type], [date], max(id) over(partition by  [type], [date] )
    from #sample
    
    Drop table #sample