我想要做的是通過使用磁區邏輯來獲得“EmailAddresses”的總數。正如您在結果集電子表格中看到的,第一條記錄是正確的——這個特定的電子郵件地址存在 109 次。但是,第二條記錄,相同的電子郵件地址,該numberOfEmailAddresses列顯示 108。依此類推 - 只是在相同的電子郵件地址上不斷向下遞增 1。顯然,我沒有正確撰寫此 SQL,我希望得到一些關于我可能做錯了什么的反饋。
我希望看到的是數字 109 始終在numberOfEmailAddresses該特定電子郵件地址的列下方。我可能做錯了什么?
這是我的代碼:
select
Q1.SubscriberKey,
Q1.EmailAddress,
Q1.numberOfEmailAddresses
from
(select
sub.SubscriberKey as SubscriberKey,
sub.EmailAddress as EmailAddress,
count(*) over (partition by sub.EmailAddress order by sub.SubscriberKey asc) as numberOfEmailAddresses
from
ent._Subscribers sub) Q1
這是我的結果集,按“numberOfEmailAddresses”排序:

uj5u.com熱心網友回復:
select distinct
Q1.SubscriberKey,
Q1.EmailAddress,
(select count(*) from ent._Subscribers sub where sub.EmailAddress = Q1.EmailAddress) as numberOfEmailAddress
from ent._Subscribers Q1
會給你你想要的。我認為在您的磁區函式中包含 order by 是導致遞減計數的原因。據我了解,磁區函式中的排序進一步細分了磁區。
select
Q1.SubscriberKey,
Q1.EmailAddress,
Q1.numberOfEmailAddresses
from
(select
sub.SubscriberKey as SubscriberKey,
sub.EmailAddress as EmailAddress,
count(*) over (partition by sub.EmailAddress) as numberOfEmailAddresses
from
ent._Subscribers sub) Q1
也可以作業,但我找不到合適的資料集進行測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/476637.html
