SQL根据列值实现计数与分支判断:关联模板状态表统计已投递邮件数
邮件模板投递统计SQL实现
实现代码
SELECT t.template_ID, COUNT(CASE WHEN s.status_type = 'delivered' THEN 1 END) AS 已送达记录数, CASE WHEN t.template_name IS NULL THEN 'fra' ELSE 'em' END AS 模板类型 FROM TEMPLATE t LEFT JOIN STATUS s ON t.template_ID = s.template_ID GROUP BY t.template_ID, 模板类型 ORDER BY t.template_ID;
逻辑说明
- 采用
LEFT JOIN关联模板表TEMPLATE和投递状态表STATUS,确保所有模板的ID都能保留在结果中,不会遗漏无投递记录的模板 - 已送达记录数字段通过
COUNT+条件判断实现,没有对应已送达记录的模板统计结果为0,不会出现空值 - 模板类型字段按规则生成:如果模板名称为NULL则返回
fra,否则返回em - 按
template_ID分组,保证结果中每个模板ID唯一
内容的提问来源于stack exchange,提问作者ninelondon
相关产品推荐
相关产品推荐

