SQL知识点:group by分组对null值的处理、avg函数、sum函数
1、GROUP BY 子句在 SQL 中会处理 NULL 值,但它将 NULL 值视为相同的值进行分组。这意味着,如果你的查询中包含了可能为 NULL 的列,并且你按这个列进行了分组,那么所有 NULL 值都会被归到同一个组中。
2、avg函数
点击查看代码
/*
AVG除了可以计算某字段的均值外,还可以计算符合条件的记录数占比
AVG(判断条件) = 满足“判断条件”为True的记录数 / 总记录数
即每个user_id分组中满足“action = 'confirmed'”的行数占该组总行数的比例
*/
select
a.user_id as user_id,
ifnull(round(avg(b.action = 'confirmed'),2),0) as confirmation_rate
from
Signups a
left join
Confirmations b
on
a.user_id=b.user_id
group by
a.user_id
3、sum函数
点击查看代码
select
a.user_id as user_id,
ifnull(round(sum(b.action = 'confirmed')/count(b.action),2),0) as confirmation_rate
from
Signups a
left join
Confirmations b
on
a.user_id=b.user_id
group by
a.user_id
浙公网安备 33010602011771号