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



假设我们有一个包含条目和运行日期的表。它可能会在周末或节假日更新,也可能只是运行M-F。这个检查可以在当天的所有负载完成之前运行。出于这个原因,我想在最长日期之前找到条目。

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

在这种情况下,我想返回3/6/20。我会在CTE或子查询中使用它。

这段代码返回前两个日期,我们看到第二个日期是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

最新更新