Sql 获取状态的最高值

Sql 获取状态的最高值,sql,teradata,Sql,Teradata,Teradata查询如下所示: Select a, b, MIN(Record_Start_Date) as MIN_Record_Start_Date, MAX(Record_End_Date) as MAX_Record_End_Date FROM tbl GROUP BY 1,2 现在我想添加第三个属性“status”。问题是-我只想要“last”状态-一行的值,最大值为“Record\u End\u Date” 有人能帮忙吗?切换到OLAP函数而不是聚合: SELECT a,

Teradata查询如下所示:

Select
a,
b,
MIN(Record_Start_Date) as MIN_Record_Start_Date,
MAX(Record_End_Date) as MAX_Record_End_Date
FROM tbl
GROUP BY 1,2
现在我想添加第三个属性“status”。问题是-我只想要“last”状态-一行的值,最大值为“Record\u End\u Date”


有人能帮忙吗?

切换到OLAP函数而不是聚合:

SELECT
   a,
   b,
MIN(Record_Start_Date) OVER (PARTITION BY a, b) AS  MIN_Record_Start_Date,
Record_End_Date AS MAX_Record_End_Date,
Status
FROM tbl
QUALIFY 
   ROW_NUMBER() 
   OVER (PARTITION BY a,b 
         ORDER BY Record_End_date DESC) = 1

切换到OLAP函数而不是聚合:

SELECT
   a,
   b,
MIN(Record_Start_Date) OVER (PARTITION BY a, b) AS  MIN_Record_Start_Date,
Record_End_Date AS MAX_Record_End_Date,
Status
FROM tbl
QUALIFY 
   ROW_NUMBER() 
   OVER (PARTITION BY a,b 
         ORDER BY Record_End_date DESC) = 1

max(Record\u End\u Date)
不是在teradata上工作吗?我想要STATUS列的值-Record\u End\u Date=max(Record\u End\u Date)不是
max(Record\u End\u Date)
在teradata上工作吗?我想要STATUS列的值-Record\u End\u Date=max(Record\u End\u Date)的值