然后,用登陆日期的“天”和“每个月登陆顺序”的差值来做标记(如下图)。这样就可以知道,当登陆日期连续时,差值就是相同的,代表这些天用户是连续登陆。
上次我们根据用户创建账号和登录日志进行了《用SQL进行用户留存率计算》,今天我们继续用这份用户登录日志来计算用户连续登录天数。
2.表一中各地市ARPU(0,30),[30,50),[50-80),[80以上)用户数分别是多少?
“用户活跃表”记录了用户的登录信息,包括用户标识、用户登录日期,以及是否是新用户(如果是新注册的用户值为1;如果是老用户,值为0)。
窗口函数的主要作用是对数据进行分组排序、求和、求平均值、计数等。对于数据从业者来说, sql窗口函数在实际工作中具备非常广泛的应用场景。可以大大的提高数据查询效率,同时也是数据类相关岗位的面试/笔试的必考点。所以不论是在职的分析师,还是准备找工作的同学,都必须要牢牢掌握窗口函数的概念及用法。感谢群友饭小米的投稿,接下来让我们详细了解一下窗口函数的前世今生吧。
1.MySQL中关于函数的说明 2.单行函数分类 3.字符函数 1)length(str):获取参数值的字节个数; 2) concat(str1,str2,…):拼接字符串; 3)upper(str):将字符中的所有字母变为大写; 4)lower(str):将字符中所有字母变为小写; 5)substr(str,start,[len]):从start位置开始截取字符串,len表示要截取的长度; 6)instr(str,要查找的子串):返回子串第一次出现的索引,如果找不到,返回0; 7)trim(str):去掉字符串前后的空格; 8)lpad(str,len,填充字符):用指定的字符,实现对字符串左填充指定长度; 9)rpad(str,len,填充字符):用指定的字符,实现对字符串右填充指定长度; 10) replace(str,子串,另一个字符串):将字符串str中的字串,替换为另一个字符串; 4.数学函数 1)round(x,[保留的位数]):四舍五入; 2)ceil(x):向上取整,返回>=该参数的最小整数。(天花板函数) 3)floor(x):向下取整,返回<=该参数的最大整数。(地板函数) 4)truncate(x,D):截断; 5)mod(被除数,除数):取余; 5.日期时间函数 1)now():返回系统当前的日期和时间; 2)curdate():只返回系统当前的日期,不包含时间; 3)curtime():只返回系统当前的时间,不包含日期; 4)获取日期和时间中年、月、日、时、分、秒; 5)weekofyear():获取当前时刻所属的周数; 6)quarter():获取当前时刻所属的季度; 7)str_to_date():将日期格式的字符串,转换成指定格式的日期; 8)date_format():将日期转换成日期字符串; 9)date_add() + interval:向前、向后偏移日期和时间; 10)last_day():提取某个月最后一天的日期; 11)datediff(end_date,start_date):计算两个时间相差的天数; 12)timestampdiff(unit,start_date,end_date):计算两个时间返回的年/月/天数; 6.其它常用系统函数 7.流程控制函数 1)if函数:实现if-else的效果; 2)ifnull函数:判断值是否为null,是null用指定值填充; 3)case…when函数的三种用法; ① case … when用作等值判断的语法格式; ② case … when用作区间判断的语法格式; ③ case…when与聚合函数的联用 8.聚合函数 1)聚合函数的功能和分类; ① 聚合函数的功能; ② 聚合函数的分类; 2)聚合函数的简单使用; 3)五个聚合函数中传入的参数,所支持的数据类型有哪些? ① 测试数据; ② sum()函数和avg()函数:传入整型/小数类型才有意义; ③ max()函数和min()函数:传入整型/小数类型、日期/时间类型意义较大; ④ count()函数:可以传入任何数据类型,但是碰到null要注意; ⑤ count()函数碰到null值需要特别注意; ⑥ count(1),count(0)表示的是啥意思呢? ⑦ count(*)计数的效率问题; 4)聚合函数和group by的使用“最重要”;
为了帮助用户根据评分找到优质房源,现在领导要你找出分数(满分10分)在0-5分,5-7分,7-9分,9分及以上分别有多少。
在有些时候,我们需要统计连续登录N天或以上用户,这里采用python通过分组排序、分组计数等步骤实现该功能,具体如下:
整体实现思路: 1.用户每天可能不止登陆一次,将登录日期去重,取出当日登陆成功的日期,row_number()函数分组排序并计数 2.日期减去计数得到值 3.根据每个用户count(值)判断连续登陆天数 4.最后取连续登陆天数大于等于7天的用户
对上述原始数据,按照DEPARTMENT_ID(员工id)分组统计SALARY(薪水)的平均值。
最近多次看到用SQL查询连续打卡信息问题,自己也实践一波。抛开问题本身,也是对MySQL窗口函数和自定义变量用法的一种练习。
最近在处理数据的时候遇到一个需求,核心就是求取最大连续行为天数。类似需求在去年笔者刚接触pandas的时候也做过《利用Python统计连续登录N天或以上用户》,这里我们可以用同样的方法进行实现。
有一张用户签到表,表中记录了每个用户每天签到的情况。该表包括了三列日期、用户id、用户当日是否签。
转载自https://blog.csdn.net/u011479200/article/details/78633382
SPL作为专门用于结构化和半结构化数据的处理技术,在实际应用时经常能比SQL快几倍到几百倍,同时代码还会短很多,尤其在处理复杂计算时优势非常明显。用户在看到这些应用效果后对SPL往往很感兴趣,但又担心掌握起来太难,毕竟SPL的理念和语法都跟SQL有较多不同,这要求用户需要重新了解一些概念和学习新的语法,用户可能会心生疑虑。
“订单表”中记录了某店铺每个用户的订单数量。“客户编号”是用户的唯一识别。请问订单数在0-2、3-5、5单以上的各有多少人?
现有用户登录时间表,记录每个用户的id,姓名,邮箱地址和用户最后登录时间。表如下:
获取当前时间,可以使用函数:DateTime.LocalNow()或DateTime.FixedLocalNow()
作者 | 邓秋爽:云和恩墨技术工程师,有超过七年超大型数据库专业服务经验,擅长 Oracle 数据库优化、SQL 优化和 Troubleshooting。
请使用sql将购买记录表中的信息,提取为下表(复购分析表)的格式。并用一条sql语句写出。
分析中第3点在hive sql系列(三)中计算连续日活中也用到了日期差值,参考链接:
作者:dcguo 使用 sql 做数仓开发有一段时间了,现做一下梳理复盘,主要内容包括 sql 语法、特性、函数、优化、特殊业务表实现等。 mysql 数据结构 常用 innodb 存储为 B+ 树 特点 多路平衡树,m 个子树中间节点就包含 m 个元素,一个中间节点是一个 page(磁盘页) 默认 16 kb; 子节点保存了全部得元素,父节点得元素是子节点的最大或者最小元素,而且依然是有序得; 节点元素有序,叶子节点双向有序,便于排序和范围查询。 优势 平衡查找树,logn 级别 crud; 单一节点比二
Excel是我们工作中经常使用的一种工具,对于数据分析来说,这也是处理数据最基础的工具。本文对数据分析需要用到的函数做了分类,并且有详细的例子说明。Excel函数分类:关联匹配类、清洗处理类、逻辑运算类、计算统计类、时间序列类上篇已经给大家分享过关联匹配类和清洗处理类,今天将继续分享其余三类:逻辑运算类、计算统计类、时间序列类。
在电商项目中经常需要对用户购买行为进行分析,比如需要求用户连续购买天数,用户这次购买与上次购买间隔天数。
最后是今天的分享:Author、Article、ArticleDetail三张表一键建表SQL语句
请补全JavaScript代码,要求在页面上渲染出一个直角三角形,三角形换行要求使用"br"实现。
之前我们简单的了解了增、删、改、查这几类T-SQL语法来操纵数据表,但是为了更方便快捷地完成大量任务,SQL Server 提供了一些内部函数,可以和SQL Server 的SELECT语句来联合使用,进行类型转换、日期处理、数学计算、实现系统功能。
可以使用 DDD 将一年中的某一天(自 1 月 1 日以来经过的天数)转换为实际日期。格式字符串 DDD YYYY 必须与由整数天数和四位数年份组成的相应 date_string 配对。 (与 DDD 一起使用时,两位数的年份必须指定为 RR(而不是 YY)。)格式字符串 DDD 默认为当前年份。经过的天数必须是 1 到 365 范围内的正整数(如果 YYYY 是闰年,则为 366)。四位数年份必须在标准 日期范围内:1841 到 9999。DDD 和 YYYY 格式元素可以按任意顺序指定;它们之间的分隔符是强制性的。以下示例显示了这一年中的一天的用法:
解决痛点:本文为招聘过程中总结的7道SQL面试题,涵盖常考知识点,对于准备找工作的你会有很大帮助。
group查询就是分组查询,为什么要分组查询?因为我们想按某个维度进行统计。下面来看个图:
请编写 SQL 查询,计算从注册当天开始的每个用户在注册后第1天、第3天、第7天的学习留存率。留存率的计算方式是在注册后的特定天数内继续学习的用户数除以当天注册的用户总数。结果应包含日期、留存天数和留存率。
select 显示的字段列表 from 表名 where 条件 GROUP BY 分组 having 条件 limit 开始记录,条数 order by 排序字段 desc降序|asc升序
现代Java应用架构越来越强调数据存储和处理分离,以获得更好的可维护性、可扩展性以及可移植性,比如火热的微服务就是一种典型。这种架构通常要求业务逻辑要在Java程序中实现,而不是像传统应用架构中放在数据库中。
报表体系的构建是数据分析师的日常工作,也是面试中高频考察的问题。虽然很多数据分析师都会做报表,但不代表报表是有体系的,尤其是面向不同业务场景、不同的业务方要看不同的数据指标时,报表容易变得过于分散、产生大量数据冗余、或者数据分析师额外增加了很多重复劳动。
游戏开服前两天(2022-08-13至2022-08-14)的角色登录和登出日志如下
还是昨天的问题,统计每周内问题小区连续出现天数,MySQL可以实现吗?答案是肯定的,就是过程很曲折。 数据库查询语言基本都是针对整列的,不像excel是单元格粒度的,要判断行与行之间的差异比较麻烦。 建表语句如下:
最近有位同学面试了几家,分享了一些觉得有些难度的SQL面试题:比如会让你用SQL实现行转列和列转行操作、用SQL计算留存、用SQL计算中位数、还有如何统计用户最大连续登录天数?
最近在公司做了几张报表,还记得刚开始要做报表的时候都快把SQL给忘光了(当时在广州休假了1个月多,在实习期间也没咋写过SQL),回到公司的第一个需求就是做报表。
介绍使用索引、临时表 + 文件排序实现 group by,以及单独介绍临时表的三篇文章中,多次以 count(distinct) 作为示例说明。
在敏捷研发的过程中,或者项目结束后的复盘阶段,度量并分析团队成员在周期内的工作负荷、完成的工作量与工作动态,能够让管理者清晰的认识到团队成员的工作负载与工作效率;团队成员间也可以相互查看对方所参与的项目,近期工作动态或近期事项。
最近在公司做了几张报表,还记得刚开始要做报表的时候都快把SQL给忘光了,回到公司的第一个需求就是做报表。
小勤:大海,公司有个关于网点的客户数量统计问题,涉及到非重复计数的问题,这么常用的功能,Excel里居然不支持!
领取专属 10元无门槛券
手把手带您无忧上云