Postgres sql根据从文本列派生的排名选择结果

时间:2016-05-11 17:22:52

标签: sql postgresql

在这里抓我的头。我有一个非常简单的postgres表,我需要从中选择一个唯一的行,每天只根据文本列进行更新,如下所示。

First update ='AA1',2nd update ='AB',3rd update ='D4'

    id  item      date         run    value
    ---------------------------------------
    23  apple     01/01/16      AA1    232
    25  apple     01/01/16      AB     254
    26  apple     01/01/16      D4     212

根据一天中的时间,根据日期('01 / 01/2016')运行查询将返回1,2或3行。但是我只需要最新的行,例如运行= D4以上。

如何编写一个简单的选择查询,该查询始终只返回基于文本的列的最新行?我认为我需要根据“运行”列创建排名,但我不知道该怎么做。

问候

1 个答案:

答案 0 :(得分:3)

使用方便的distinct on

select distinct on (date) *
from t
order by date, run desc