确认率计算
2025年4月9日小于 1 分钟
确认率计算
要求:
- 用户的确认率是 'confirmed'消息的数量除以请求的确认消息的总数。没有请求任何确认消息的用户的确认率为0。
- 确认率四舍五入到 小数点后两位。编写一个SQL查询来查找每个用户的确认率。
核心:
- 利用sum函数求出全部确认的人数,利用条件判断返回1和0,sum函数再把得到的结果累加起来,即为确认人数.
- IFNULL(null,返回值) 函数,当第一个参数整体得到的结果为null时,该函数就把null值替换为指定的返回值
实现
SELECT
s.user_id,
ROUND(
IFNULL(
SUM(CASE WHEN c.action = 'confirmed' THEN 1 ELSE 0 END) / COUNT(c.action),
0
),
2
) AS confirmation_rate
FROM
Signups s
LEFT JOIN
Confirmations c
ON
s.user_id = c.user_id
GROUP BY
s.user_id;