LeetCode 1934.确认率

发布时间 2023-09-12 16:37:27作者: 寒人病酒

1934.确认率

1.问题关键精炼:

  1. 确认率是confirmed消息的数量除以请求的确认消息的总数。
  2. 没有请求任何确认消息的用户的确认率为0。
  3. 确认率四舍五入到小数点后两位

2.难点解析:

我觉得这道题是考察AVG函数的使用。 根据需求可以看出,答案也就是一个公式:confirmed消息的数量 / 总数。 可以考虑使用AVG函数,需要注意的是AVG函数是可以写条件判断的。

3.编写思路

  1. 使用AVG函数计算confirmed的平均值,如果不存在则为NULL
  2. 使用IFNULL把NULL值转换为0
  3. 最后使用ROUND精确到小数点后两位

4.SQL语句:

SELECT
    s.user_id,
    ROUND(IFNULL(AVG(c.action='confirmed'), 0), 2) AS confirmation_rate
FROM
    Signups AS s
LEFT JOIN
    Confirmations AS c
ON
    s.user_id = c.user_id
GROUP BY
    s.user_id