2013-07-19 72 views
1

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 

現在我想添加第三個屬性「地位」。問題是 - 我只想要「最後」狀態 - 具有最高值「Record_End_Date」的行的值。

任何人都可以幫忙嗎?

+0

是不是'MAX(Record_End_Date)'在Teradata上工作? – Slim

+0

我想STATUS列的值 - 一個值Record_End_Date = MAX(Record_End_Date) – Adam

回答

4

切換到一個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