第二个到最近的日期,日期重复

时间:2017-07-15 22:53:14

标签: sql-server date

我正在尝试检索约会的第二个到最近的约会日期。我利用ROW_NUM_DESC来检索最近的日期。因此,where子句显示为ROW_NUM_DESC = 1。

我的困境是我从中提取日期的列有重复的日期。因此,ROW_NUM_DESC = 2不是第二个最近值的准确表示。

无法使用以下原因:

  1. select语句中的DISTINCT。 原因:列出了另一个字段 - 部门名称。我想要每个日期的部门名称列表。

  2. GROUP BY-要求我列出select语句中的所有列,如部门名称。 原因:同样,我想要每个日期的所有部门名称列表。

  3. DATEPART-语法中需要NUMBER的整数。我可以从整数转换的日期时间是否大于ROW_NUM_DESC中列出的日期?

  4. 任何帮助表示赞赏!!!!

1 个答案:

答案 0 :(得分:0)

您可以将Dense_rank与分区一起使用,并按2进行过滤:

Select * from
   ( Select *, RowN = dense_rank() over(partition by idcolumn order by yourDate desc from Yourtable ) a
Where a.RowN = 2

此处按idcolumn分区,您可以根据需要使用,以获得个人idcolumn或其他列的最近第2次约会或删除

相关问题