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
posted @   测试三思  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示