这是我的查询:
SELECT
dbo.EmailCampaignTracking.emailOpened,
dbo.EmailCampaignTracking.emailUnsubscribed,
dbo.EmailCampaignTracking.emailBounced,
COUNT(*)
FROM
dbo.EmailCampaignTracking
Group By
dbo.EmailCampaignTracking.emailBounced,
dbo.EmailCampaignTracking.emailUnsubscribed,
dbo.EmailCampaignTracking.emailOpened
Run Code Online (Sandbox Code Playgroud)
以下是我的结果:
emailOpened emailUnsubscribed emailBounced Totals
True False False 6
False False True 1
True True False 2
Run Code Online (Sandbox Code Playgroud)
我希望电子邮件opend的总数为8而不是6.我意识到我要求SQL将它们分组.我只是想知道如何为每一列获得Distict总数.所以,emailOpened将是8,emailUnsubscribed将是1,而emailBounced将是2.谢谢
SELECT Count(emailOpened) AS OpenedCount,
Count(emailUnsubscribed) as UnsubCount,
Count(emailBounced) as BouncedCount
FROM dbo.EmailCampaignTracking
Run Code Online (Sandbox Code Playgroud)
编辑:如果您想在标志为真时计算记录,可以按如下方式编写
SELECT SUM(CASE emailOpened WHEN true then 1 else 0) AS OpenedCount,
SUM(CASE emailUnsubscribed WHEN true then 1 else 0) as UnsubCount,
SUM(CASE emailBounced WHEN true then 1 else 0) as BouncedCount
FROM dbo.EmailCampaignTracking
Run Code Online (Sandbox Code Playgroud)
EDIT2:在上面的查询中,替换true为被解释为true的位值(可以是0).
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |