我正在嘗試使用partition by clause從數據庫中刪除記錄這是我爲了重複數據刪除而運行的查詢。它對人口最多,記錄最高的記錄進行排名。通過使用多個case語句進行分區
WITH cteDupes AS
(
--
-- Partition based on contact.owner and email
SELECT ROW_NUMBER() OVER(PARTITION BY contactowner, email
ORDER BY
-- ranking by populated field
case when otherstreet is not null then 1 else 0 end +
case when othercity is not null then 1 else 0 end
) AS RND, *
FROM scontact
where (contact_owner_name__c is not null and contact_owner_name__c<>'') and (email is not null and email<>'')
)
--Rank data and place it into a new table created
select * into contact_case1
from cteDupes
WHERE RND=1;
我想知道它是否可以通過使用大小寫進行分區。例如,目前我正在通過聯繫人和電子郵件進行分區。當contactowner爲空時,我想通過contactofficer進行分區。 我可以創建這樣的病例陳述嗎?或者這是不可能的,因爲排名會在某種程度上被改變。
「當contactowner爲空時,我想通過contactofficer進行分區。」這句話含糊不清。你的意思是說,你想把軍官的價值看作是所有者的價值嗎?在那種情況下,你不想通過聯繫人員進行分區,而是希望由所有者進行分區,但這些仍然是不同的實體,不會混合? –