如何统计含多客户记录的表中每位客户收到的邮件总数量
解决方案
你需要使用SQL的GROUP BY子句配合聚合函数实现按客户分组统计,不需要逐次指定WHERE条件过滤单个客户。
具体查询语句
SELECT CustomerID, COUNT(EmailName) AS NumberOfEmailsSent FROM 你的表名 -- 替换为你实际使用的表名称 GROUP BY CustomerID;
逻辑说明
GROUP BY CustomerID会将表中所有记录按CustomerID的值自动分组,相同客户ID的所有记录会被归到同一个分组中COUNT(EmailName)会统计每个分组内非空的EmailName记录数,刚好对应每个客户收到的邮件数量- 如果需要排除重复的同名邮件统计,可以将计数逻辑改为
COUNT(DISTINCT EmailName)
如果你的表中存在已经删除/作废的邮件记录需要排除,可以在GROUP BY之前加WHERE子句过滤无效数据,示例:
SELECT CustomerID, COUNT(EmailName) AS NumberOfEmailsSent FROM 你的表名 WHERE 邮件状态 = '已发送' -- 按需替换为你实际的过滤条件 GROUP BY CustomerID;
内容的提问来源于stack exchange,提问作者James Male
相关产品推荐
相关产品推荐

