Sql 红移每年列出3个最新值

Sql 红移每年列出3个最新值,sql,amazon-redshift,Sql,Amazon Redshift,我有一列日期,我想找到我尝试过的每年的三个最长日期 select max(date, rank() over (partition by SPLIT_PART(date, '-', 1) order by date desc) from table ; 我期望的输出是 2013,2010-12-31 2013,2010-12-30 2013,2010-12-29 表中还有重复的日期,因此我也必须过滤掉这些日期假设没有重复的日期,您可以按日期的年份部分进行分区,并获得每年最新的3个日期。如果需

我有一列日期,我想找到我尝试过的每年的三个最长日期

select max(date, rank() over (partition by SPLIT_PART(date, '-', 1) order by date desc)
from table
;
我期望的输出是

2013,2010-12-31
2013,2010-12-30
2013,2010-12-29

表中还有重复的日期,因此我也必须过滤掉这些日期

假设没有重复的日期,您可以按日期的年份部分进行分区,并获得每年最新的3个日期。如果需要,在最终查询中使用distinct删除重复项(如果有)

select yr,date
from (select date_part(year,date) as yr,date
      ,dense_rank() over (partition by date_part(year,date) order by date desc) as rnk
     from table
     ) t
where rnk<=3

列的数据类型是日期吗?是,数据类型是日期