计算方式对比

一般计算占比,比如转换率、留存率等,都是先分组求和再相除得到结果,但是在一定的条件下,可以直接使用AVG()求出百分比

比如,要求统计报名转化率,报名转化率公式为转化率=报名人数/浏览人数

在下面图中,两种颜色分别表示了不同的计算过程:

  • 淡橘色是第一种直接方法:分别求出浏览人数(7),报名人数(4),转化率=4/7=57%
  • 蓝色是使用平均函数AVG():直接对“是否报名”列求平均数,结果也为4/7=57%,其中满足报名条件的人数(4),总人数(7)。

题目满足两个条件:

  1. 表格中有为唯一ID值,
  2. 有判断条件的列:在“是否报名”列中,只有0和1,1表示满足了条件(已经报名),0表示没有满足条件(没有报名)。

所以,可以直接使用AVG()函数计算条件列的占比结果。而在实际过程中,上述条件都可以通过聚合计算满足,比如通过if()函数构建一个判断列。

例一:计算转换率

举个简单栗子,在牛客直播转换率这个题目中,要求:统计每个科目的转换率(sign_rate(%),转化率=报名人数/浏览人数,结果保留两位小数)。(注:按照course_id升序排序)

已知课程表course_tb如下(其中course_id代表课程编号,course_name表示课程名称,course_datetime代表上课时间):

用户行为表behavior_tb如下(其中user_id表示用户编号、if_vw表示是否浏览、if_fav表示是否收藏、if_sign表示是否报名、course_id代表课程编号):

解法

select
b.course_id,
course_name,
round(avg(if_sign)*100,2)
from behavior_tb b
left join course_tb c on c.course_id=b.course_id
group by 1,2
order by course_id asc

例二:计算新用户占比

计算每天的日活数及新用户占比

  • 新用户占比=当天的新用户数÷当天活跃用户数(日活数)。
  • 如果in_time-进入时间out_time-离开时间跨天了,在两天里都记为该用户活跃过。
  • 新用户占比保留2位小数,结果按日期升序排序。

解法

select
dt
,count(1) dau
,round(avg(if(cnt=1,1,0)),2) as uv_new_ratio   #是新用户返回1, 不是新用户返回0
from
(
selectuid,dt,row_number()over(partition by uid order by dt) as cnt # 判断是否为新用户
from
(#重新构造基础表格,将进入和离开时间放在同一列
select uid, date(in_time) as dt from tb_user_log
Union
select uid,date(out_time) as dt from tb_user_log) t1
) t2
group by 1
order by dt asc

SQL技巧:使用AVG()函数计算占比相关推荐

  1. MySQL avg()函数

    转载自  MySQL avg()函数 MySQL AVG()函数简介 MySQL AVG()函数是一个聚合函数,它用于计算一组值或表达式的平均值. AVG()函数的语法如下: AVG(DISTINCT ...

  2. oracle平均值语句,Oracle / PLSQL AVG函数

    这个Oracle教程解释了如何使用Oracle / PLSQL AVG函数. Oracle / PLSQL AVG函数计算表达式的平均值. Avg 函数对一组行进行操作,并返回一行输出. 空值被avg ...

  3. sql avg函数使用格式_SQL AVG-SQL平均函数用语法示例解释

    sql avg函数使用格式 什么是SQL平均(AVG)函数? (What is the SQL Average (AVG) Function?) "Average" is an A ...

  4. 【3 - 查询】Sql Server - 郝斌(计算列、distinct、between、in、top、null、order by、模糊查询、聚合函数[主要是count()函数] )

    课程地址:数据库 SQLServer 视频教程全集(99P)| 22 小时从入门到精通_哔哩哔哩_bilibili ​ 目录 查询(最重要,难度最大) (一)大纲 (二)Scott 表 下载与导入SQ ...

  5. Serverless 解惑——函数计算如何访问 SQL Server 数据库

    函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...

  6. 函数计算 Python 连接 SQL Server 小结

    python 连接数据库通常要安装第三方模块,连接 MS SQL Server 需要安装 pymssql .由于 pymsql 依赖于 FreeTDS,对于先于 2.1.3 版本的 pymssql,需 ...

  7. SQL AVG() 函数

    SQL AVG() 函数 AVG() 函数 AVG() 函数返回数值列的平均值. SQL AVG() 语法 SELECT AVG(column_name) FROM table_name 演示数据库 ...

  8. percent sql_使用SQL Server中的PERCENT_RANK函数计算SQL百分位数

    percent sql This article explores the SQL Server PERCENT_RANK analytical function to calculate SQL P ...

  9. # 160_技巧_Power BI 新函数-计算工作日天数

    160_技巧_Power BI 新函数-计算工作日天数 一.背景 Power BI 2022 年 7 月 14 日更新了最新版本的,版本号为:2.107.683.0 . 更多更新内容可以查看官方博客: ...

最新文章

  1. win10下gnuplot的安装和使用
  2. 语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)
  3. Android 新闻客户端
  4. cordova使用Gradle构建下载maven太慢,使用阿里云镜像
  5. python gevent教程_Python的gevent框架的入门教程
  6. 在dom最前面插入_JavaScript中的DOM
  7. Spring中,修改注入的bean名称
  8. 游戏AI的生命力源自哪里?为你揭开MOBA AI的秘密!
  9. System.SetString - 获取字符串
  10. 手机音频拼接软件_自媒体视频,手机剪辑有哪些软件推荐?
  11. 快手“老”矣,尚能饭否?
  12. mysql优化之前缀索引--带案例分析
  13. Dubbo源码分析-Spring与Dubbo整合原理与源码分析(二)
  14. 编译原理 SysY语言的词法分析程序
  15. Vue项目实战:接口错误拦截与环境设置
  16. B2B支付平台市场现状研究分析-
  17. 天津职业技术师范大学计算机研究生,天津职业技术师范大学2021年硕士研究生招生各学院调剂系统开放时间...
  18. 前端之JS篇(四)——三种循环(forwhiledo...while)
  19. 打游戏计算机 配置清单,组装电脑配置清单玩游戏用的
  20. 最牛通达信主升浪精准指标 准确率超高 主图 源码

热门文章

  1. 张孝祥老师给我们的---该不该从大学退学的讨论
  2. sql数据库表添加、删除字段
  3. 超线程技术(HT, HyperThreading)概述
  4. win10系统怎么将“我的电脑”设置到桌面
  5. 《道德经》第三十八章
  6. 小程序自定义键盘组件之车牌号录入
  7. 关于Unicode控制字符RLO,LRO,PDF 的坑
  8. 操作系统之信号量机制以及使用信号量实现进程(线程)同步和互斥
  9. VUE动态路由下刷新丢失路由的解决方法
  10. 浏览器发出http请求访问服务器的流程(B/S模式)