Bra*_*rad 5 sql t-sql sql-server group-by sql-server-2008
我正在构建一个发送电子邮件的系统,我需要进入[User]表来检索要发送的电子邮件,以及将用于取消订阅目的的GUID(uniqueidentifier类型).
它适用于电子商务解决方案,因为匿名用户和登录用户可以拥有相同的电子邮件地址,因此会创建需要在查询中区分的重复电子邮件条目.
我无法找到检索电子邮件和guid的解决方案,但只能在电子邮件中有所区别.这是我到目前为止的查询.
SELECT Email, User_GUID
FROM [User]
WHERE
IsActive = 1 AND
IsEmailValid = 1 AND
IsNotActiveBecauseUnsubscribed = 0 AND
Subscribed = 1
GROUP BY Email, User_GUID
Run Code Online (Sandbox Code Playgroud)
with cte
as
(
select *, row_number() over (partition by Email order by User_GUID) RowNumber
from [User]
where
IsActive = 1 and
IsEmailValid = 1 and
IsNotActiveBecauseUnsubscribed = 0 and
Subscribed = 1
)
select Email, User_GUID
from cte
where RowNumber = 1
Run Code Online (Sandbox Code Playgroud)
要么
select Email, User_GUID
from
(
select *, row_number() over (partition by Email order by User_GUID) RowNumber
from [User]
where
IsActive = 1 and
IsEmailValid = 1 and
IsNotActiveBecauseUnsubscribed = 0 and
Subscribed = 1
) tt
where RowNumber = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17214 次 |
| 最近记录: |