怎么做公司销售网站,商城app开发要多少钱,重新安wordpress网站,写作兼职网站leetcode题目#xff1a;1934. 确认率
在刷leetcode的MySQL题中#xff0c;从题目的题解知道了count和avg聚合函数的另外用法#xff0c;在此记录。
count() 里加条件判断
count函数用于统计在符合搜索条件的记录中#xff0c;指定的表达式expr不为NULL的行数有多少1934. 确认率
在刷leetcode的MySQL题中从题目的题解知道了count和avg聚合函数的另外用法在此记录。
count() 里加条件判断
count函数用于统计在符合搜索条件的记录中指定的表达式expr不为NULL的行数有多少只要不为NULL都会进行统计。这里需要特别注意的是expr不仅仅可以是列名其他任意表达式都是可以的。
还看到一篇文章说在MySQL里count(*) 会把*变为0即count(0)而0不等于NULL所以相当于记录表中的总记录数。
刚开始一直弄不明白题解的答案经过不断尝试后知道了count的实际运行效果如下 count(age 10) - 不管条件成不成立都会用age的实际值去计数只要age不为null都会累计
count(age 10 or null) - 符合条件用age的实际值去计数只要age不为null都会累计- 不符合条件则取or后跟的值这里为null即count(null)count对null不计数
count(1) / count(null) - 出现除以0的非法情况结果会返回null -- 统计年龄大于19岁的用户人数
-- 以下三种写法等价
select count(age 19 or null) from user
select count(if(age 19, 1, null)) from user
select count(case when age 19 then 1 end) from user
avg() 求符合条件的记录数占比
AVG除了可以计算某字段的均值外还可以计算符合条件的记录数占比AVG(判断条件) 满足“判断条件”为True的记录数 / 总记录数即每个user_id分组中满足“action confirmed”的行数占该组总行数的比例
sum()函数里加条件判断
# Write your MySQL query statement below
select a.user_id,
round(sum(if (b.actionconfirmed,1.00,0.00)) / count(a.user_id), 2) as confirmation_rate
from Signups a left join Confirmations b on a.user_id b. user_id
group by a.user_id
参考
必看大家困惑的AVG写法的解释简单易懂
【确认率】使用count()函数并添加筛选条件
sumiif 题解
Mysql count 带条件计数
MySQL Count函数使用教程