SQL Select newest records that have distinct Name column

前端 未结 4 987
一生所求
一生所求 2020-12-12 15:30

I did search around and I found this SQL selecting rows by most recent date Which is so close to what I want but I can\'t seem to make it work.
I get an error Column \'I

4条回答
  •  攒了一身酷
    2020-12-12 15:49

    There a couple ways to do this. This one uses ROW_NUMBER. Just partition by Name and then order by what you want to put the values you want in the first position.

    WITH cte 
         AS (SELECT Row_number() OVER (partition BY NAME ORDER BY date DESC) RN, 
                    id, 
                    name, 
                    price, 
                    date 
             FROM   table1) 
    SELECT id, 
           name, 
           price, 
           date 
    FROM   cte 
    WHERE  rn = 1 
    

    DEMO

    Note you should probably add ID (partition BY NAME ORDER BY date DESC, ID DESC) in your actual query as a tie-breaker for date

提交回复
热议问题