Как получить последние записи в PostgreSQL?

#sql #postgresql #datetime #greatest-n-per-group

#sql #postgresql #дата и время #наибольшее число записей на группу

Вопрос:

На самом деле я пытаюсь получить последнюю запись этих данных с помощью group by r_id и latest start_date

Мой образец данных :

 **r_id**   **s_id **     **start_date**                               
"149165"    "28317"   "2020-09-07 08:12:46.108"                      
"149165"    "28324"   "2020-09-07 08:18:15.934"                     
"149161"    "28313"   "2020-09-07 08:11:33.923"      
"149161"    "28316"   "2020-09-07 08:12:19.887"                  
"149161"    "28312"   "2020-09-07 08:11:04.448"                  
"149161"    "28305"   "2020-09-07 08:09:17.211"                  
  

Ожидаемые результаты :

     **r_id**   **s_id **     **start_date**                                
    "149165"    "28324"   "2020-09-07 08:18:15.934"                  
    "149161"    "28316"   "2020-09-07 08:12:19.887"              
  

Кто-нибудь, пожалуйста.

Ответ №1:

Вы можете использовать distinct on :

 select distinct on (r_id) t.*
from mytable t
order by r_id, start_date desc
  

Комментарии:

1. Вы не знаете, что вы сделали 🙂 . Спасибо, приятель.