如何编写SQL脚本统计事件唯一用户数并输出汇总结果表
SQL 解决方案
使用条件聚合即可实现你需要的单行汇总统计,MySQL 环境下可直接运行:
SELECT SUM(CASE WHEN status = 'Success' THEN 1 ELSE 0 END) AS 总发送量, COUNT(DISTINCT CASE WHEN status = 'opens' THEN userid END) AS 打开用户数, COUNT(DISTINCT CASE WHEN status = 'clicked' THEN userid END) AS 点击用户数, CONCAT(ROUND(COUNT(DISTINCT CASE WHEN status = 'opens' THEN userid END) / SUM(CASE WHEN status = 'Success' THEN 1 ELSE 0 END) * 100, 0), '%') AS 打开率, CONCAT(ROUND(COUNT(DISTINCT CASE WHEN status = 'clicked' THEN userid END) / SUM(CASE WHEN status = 'Success' THEN 1 ELSE 0 END) * 100, 0), '%') AS 点击率 FROM event_log;
执行后输出的结果和你手动计算的数值完全匹配:总发送量39、打开用户数17、点击用户数2、打开率44%、点击率5%,符合你预期的输出结构。如果需要调整转化率的小数保留位数,修改ROUND函数的第二个参数即可。
内容的提问来源于stack exchange,提问作者Tom E
相关产品推荐
相关产品推荐

