You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SELECT
user_id,
ifnull(round(sum( action ="confirmed" ) /count( user_id ), 2), 0.00) confirmation_rate
FROM Signups LEFT JOIN Confirmations USING ( user_id )
GROUP BY user_id
SELECT
user_id,
round(if(sum( action ="confirmed" ), 1, 0) /count( user_id ), 2) confirmation_rate
FROM Signups LEFT JOIN Confirmations USING ( user_id )
GROUP BY user_id
题目
题目链接:确认率
用户的 确认率 是 'confirmed' 消息的数量除以请求的确认消息的总数。没有请求任何确认消息的用户的确认率为 0 。确认率四舍五入到 小数点后两位 。
编写一个 SQL 查询来查找每个用户的 确认率 。
以 任意顺序 返回结果表。
查询结果格式如下所示。
解析
此题考点是
null
值处理null
处理:sum(column)
和count(column)
都会忽略null
值null
时,结果为null
如果遇到
null
值,我们需要将null
转为0
:if(condition , 1, 0)
ifnull(condition, 0)
除数和被除数为 null 的结果
只要表达式中包含
null
结果就是null
The text was updated successfully, but these errors were encountered: