从一个表中选择一个特定的行,其中一个字段具有重复的条目

时间:2018-07-22 09:19:29

标签: postgresql

我有一个表,其中包含以下格式的数据,但是我希望能够创建一个查询,以检查参考号是否重复,并且仅返回带有最新date_issued的条目。

ref_no          name      gender place      date_issued

xgb/358632/p    John Smith  M   London      02.08.2016

Xgb/358632/p    John Smith  M   London      14.06.2017

Rtu/638932/k    Jane Doe    F   Birmingham  04.09.2017

The result from the query should be; 

ref_no          name    gender  place       date_issued

Xgb/358632/p    John Smith  M   London      14.06.2017

Rtu/638932/k    Jane Doe    F   Birmingham  04.09.2017

是否有一个相当简单的解决方案?

1 个答案:

答案 0 :(得分:0)

假设日期列的类型为datetimestamp

select distinct on(ref_no) * from tablename order by refno,date desc;

之所以如此,是因为distinct on禁止在括号中包含重复表达式的行。