DISTINCT ON错误输出

时间:2014-09-30 15:10:09

标签: sql database postgresql

3   2014-09-30 16:07:18.690498
2   2014-09-30 16:06:30.224745
1   2014-09-30 16:04:45.844215

select DISTINCT ON (DATE(dt))
       id, dt
       from test
       ORDER BY DATE(dt) DESC

输出是id 2,应该是id 3。

我做错了什么?我只对使用DISTINCT ON的此类查询感兴趣。

2 个答案:

答案 0 :(得分:1)

尝试类似:

select DISTINCT ON (DATE(dt))
       id, dt
       from test
       ORDER BY DATE(dt) DESC, dt DESC

答案 1 :(得分:1)

您必须按dt添加订单才能获得一致的结果:

select distinct on (date(dt))
    id, dt
from test
order by date(dt) desc, dt desc

<强> sql fiddle demo