1
我有下表。我需要獲得倒數第二個事件相關聯的每個事件如何提煉最後一個?
event_id event_date event_associate
1 2/14/2014 ben
1 2/15/2014 ben
1 2/16/2014 steve
1 2/17/2014 steve // this associate is the last but one for event 1
1 2/18/2014 paul
2 2/19/2014 paul
2 2/20/2014 paul // this associate is the last but one for event 2
2 2/21/2014 ben
3 2/22/2014 paul
3 2/23/2014 paul
3 2/24/2014 ben
3 2/25/2014 steve // this associate is the last but one for event 3
3 2/26/2014 ben
我需要找出誰是最後一個,但每個事件一個event_associate。結果應該是
event_id event_associate
1 steve
2 paul
3 steve
我知道,爲了做到這一點,我需要最大化EVENT_DATE和排除最後event_associate
所以,我想
SELECT event_id , event_associate
WHERE NOT EXISTS (
SELECT *
FROM mytable
WHERE event_date = MAX(event_date)
)
QUALIFY ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY event_date DESC) = 1
但在這種情況下,我不知道如何使用EXISTS
。
謝謝。我如何獲得select中的row_number? 'select *,row_number()...'我試過它不起作用 –
當然這有效。你的錯誤是什麼? – dnoeth
哦,我明白了。你需要使用別名,我修改了我的答案。 – dnoeth