Ваш запрос на самом деле не делает то, что вы хотите, потому что where
применяется до order by
. Таким образом, вы не получите самую последнюю строку, обязательно.
К сожалению, Oracle не позволяет вам использовать другой уровень подзапросов, потому что предложение корреляции не будет работать. Но есть решение:
select (select max(t.person_uid) keep (dense_rank first order by t.created desc)
from table1 t
where table1.CELL_PH_NUM = table2.CELL_PH_NUM
)
from temp table2 ;
В версии запроса в вашем вопросе table1
не определено. Это может быть связано с ошибкой, которую вы получаете.