Teradata, генерирующий ненулевой последний адрес электронной почты с соответствующим идентификатором клиента - PullRequest
0 голосов
/ 17 июня 2019

Я новичок в Teradata. Я хотел создать «адрес электронной почты» с соответствующим «идентификатором клиента». Если у «customer i.d» есть несколько «адресов электронной почты», я перейду к пункту «Дата обновления» и проверим наличие последних обновлений и распечатаю требуемый последний адрес электронной почты. Если обновленный адрес электронной почты будет нулевым, я перейду к предыдущей дате и напечатаю соответствующий адрес электронной почты.

Я пытался с

Qualify row_number() over (Partition by customerID order by updatedDate, email desc ) = 1 

Я получаю нулевые значения здесь

Qualify row_number() over (Partition by customerID order by updatedDate, email nulls last) = 1

Здесь я не смог получить самый последний

Не могли бы вы, пожалуйста, кто-нибудь помочь мне в любом случае. Заранее спасибо.

1 Ответ

0 голосов
/ 17 июня 2019

Если вам нужны только ненулевые адреса электронной почты и, если сохраняются дубликаты, адрес электронной почты с самой последней датой обновления, то подумайте:

WHERE email IS NOT NULL
QUALIFY row_number() OVER (PARTITION BY customerID ORDER BY updatedDate DESC NULLS LAST) = 1 

Это выберет самый новый ненулевой адрес электронной почты длякаждый customerID

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...