需要为2个ID选择2个最新日期

时间:2019-06-19 21:35:18

标签: sql postgresql

我需要为每个客户ID返回2个最新日期,我分别有12345和112233,并且我需要为每个客户创建一个函数,该函数应该返回给我

 id | client_id |       created       |    log
----+-----------+---------------------+------------
  1 |     12345 | 2019-05-02 12:01:10 | SOMETEXT1
  2 |     12345 | 2019-05-02 12:09:01 | SOMETEXT11
  3 |    112233 | 2019-05-01 13:10:12 | SOMETEXT2
  4 |    112233 | 2019-05-02 09:45:50 | SOMETEXT23
(4 rows)

本应退还

>  id | client_id |       created       |    log
> ----+-----------+---------------------+------------   
    4 |    112233 | 2019-05-02 09:45:50 | SOMETEXT23   
    2 |     12345 | 2019-05-02 12:09:01 | SOMETEXT11 
(2 rows)

1 个答案:

答案 0 :(得分:0)

Postgres中最好的方法是distinct on

select distinct on (client_id) t.*
from t
order by client_id, created desc;