![]() |
|
Archives of the TeradataForumMessage Posted: Thu, 27 Aug 2009 @ 21:43:48 GMT
Hello everyone, I had a series of tables that have multiple rows for each of what a user would consider the key where the addition of a timestamp makes the row unique. What I'm looking for is the easiest / fastest way to pull the row with the most recent timestamp number. Here is the only way I can think of to do this, but I thought I saw a query that used some sort of short cut to do the same thing, Something along the lines of:
where timeStampKey1 = max(timeStampKey1)
I cannot find the query that had this, and this doesn't work (nor should it in my opinion), But I thought maybe there was a short cut for this sort of thing. Does anyone have any ideas?
select i.logicalKey1
,i.logicalKey2
,i.logicalKey3
,max(i.desiredAttribute) as chosenDesiredAttribute
from table i
inner join (
select logicalKey1
, logicalKey2
, logicalKey3
, max(timeStampKey1) as maxTimeStamp
, max(sequenceNbrKey1) as maxSequenceNbr
from table
group by 1,2,3
) m
on m.logicalKey1 = i.logicalKey1
and m.logicalKey2 = i.logicalKey2
and m.logicalKey3 = i.logicalKey3
and m.maxTimeStamp = i.timeStampKey1
and m.maxSequenceKey1 = i.sequenceNbrKey1
group by 1,2,3
Thanks in advance! Chris
| ||||||||||||||||||||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright 2016 - All Rights Reserved | ||||||||||||||||||||||||||||||||||||||||||||||||
| Last Modified: 15 Jun 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||