Teradata - 从 table 获取第二个最新日期并引用它

Teradata - Get the 2nd most current date, from a table, and reference it

假设我们有一个 table 条目和 运行 日期。它可能会在周末或节假日更新,也可能只是 运行 M-F。并且此检查可以 运行 在当天完成所有负载之前。因此,我想找到最大日期之前的条目。

Run_Date    Entry
2020-03-09  z
2020-03-06  x
2020-03-05  y

在这种情况下,我想 return 2020 年 3 月 6 日。我会在 CTE 或子查询中使用它。

此代码 return 是前两个日期,我们看到第二个日期是 3/6,但我该如何挑出它?

SELECT TOP 2
RUN_DATE
FROM DATABSE1.TABLEA
GROUP BY RUN_DATE
ORDER BY RUN_DATE DESC
SELECT 
  RUN_DATE
FROM DATABSE1.TABLEA
QALIFY 
  ROW_NUMBER() 
  OVER (ORDER BY RUN_DATE DESC) = 2 -- 2nd highest date

这假定 RUN_DATE 是唯一的,否则切换到 DENSE_RANK 加上 DISTINCT