postgres最近10个工作日

时间:2015-09-28 10:40:36

标签: sql postgresql

我想选择最近10个工作日内的行。假设工作日是行存在的日期。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容完成过去十天:

select t.*
from table t
where t.date in (select t2.date
                 from table t2
                 group by t2.date
                 order by t2.date desc
                 limit 10
                );

另一种方法是使用dense_rank()函数:

select t.*
from (select t.*, dense_rank() over (order by date desc) as seqnum
      from table t
     ) t
where seqnum <= 10;

这两个都假设日期列没有时间组件。删除时间组件是对任一版本的简单调整。

答案 1 :(得分:-1)

select * from your_table where your_table.date_field >= current_date - interval '10' day;

your_table替换为您的表名,将date_field替换为日期字段并享受乐趣。