首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Sql如何统计连续打卡天数

总第208篇/张俊红 今天来解一道题面试中可能经常会被一些面试官拿来“刁难”题,就是《如何统计连续打卡天数》,当然了这里面的打卡可以换成任意其他行为,比如连续登陆天数连续学习天数连续购买天数,这里天数也是可以换成小时或者别的时间单位...到这里,如果我们要获取连续打卡天数是不是就很容易了。 不过这里面还有一个问题,就是连续打卡天数是截止目前最近一个 连续打卡天数还是历史坚持最长打卡天数,这就是传说中口径问题哈。.../2/3 1 1 2020/2/4 1 1 2020/2/5 1 1 2020/2/6 0 1 2020/2/7 1 1 2020/2/8 1 上面这个例子中,最近连续打卡天数是2,历史最长连续打卡天数却是...,我们只需要把上表中day_cha这一列最大值对应flag_days取出来就可以;要获取历史最久连续打卡天数,我们只需要把上表中flag_days最大值取出来就可以。...类似的需求可能还有获取过去连续打卡天数大于某个值得人,只需要筛选上表中flag_days即可达到目的。

3K10
您找到你想要的搜索结果了吗?
是的
没有找到

用SQL计算用户连续登录天数

上次我们根据用户创建账号和登录日志进行了《用SQL进行用户留存率计算》,今天我们继续用这份用户登录日志来计算用户连续登录天数。 1....数据预览 这里我们用到是用户登录日志,其中用户每天可能存在多次登录。 用户登录日志 用户登录 以上案例数据 后台回复 955 可以在SQL文件夹里data领取 2....《『数据分析』pandas计算连续行为天数几种思路》 《利用Python统计连续登录N天或以上用户》 今天,我们用SQL来进行本次操作,大致分为以下几步: 数据去重 SELECT DISTINCT...$part_date date FROM role_login ) temp_1 再用登录日期和排序序号进行差值计算(DATE_SUB),并按照用id和差值进行分组计数(这就是用户连续登录天数...role_login ) temp_1 ) temp_2 GROUP BY role_id, DATE_SUB(date,INTERVAL sort DAY) 最后取每个用户id连续登录天数最大值即可

2.8K30

MySQL高阶-统计每周连续出现天数

还是昨天问题,统计每周内问题小区连续出现天数,MySQL可以实现吗?答案是肯定,就是过程很曲折。 数据库查询语言基本都是针对整列,不像excel是单元格粒度,要判断行与行之间差异比较麻烦。...--+--------+--------+------------+ 13 rows in set (0.00 sec) 现在使用一种算法来判决每周持续出现,用week()获取日期所在周数,使用下图逻辑判断连续出现...首先获取当前日期与一个较早日期差值 计算表中大于等于当前日期行数 两个值求和,求和相等则为连续出现,否则为间隔出现 SQL 呼之欲出 mysql> select -> bc.cellid,...,再加上周数,就是每周持续天数 完整代码如下: mysql> select -> bc.cellid, -> bc.cgi, -> count(*) as `con_days`,...---+----------+---------+------------+------------+------+ 7 rows in set (0.00 sec) 如上,利用MySQL获取了每周连续出现天数

1.8K20

hive sql(六)—— 每个用户连续登录最大天数

需求 每个用户连续登录最大天数 建表语句 create table login( id string, rq string ) row format delimited fields terminated...by '\t' ; 数据 #这里将数据分开,便于直观看到连续登录天数 insert into table login values (1,"2019-07-26"), (1,"2019-07-27")...,所以时间信息,并按照升序,需要在窗口里面添加order by 3、核心逻辑——连续登录判断是,通过排序添加序号,再用当前日期和当前序号做差, 如果得到日期相同,则表示是连续日期,所以使用row_number...,第二次分组是统计差值日期相同数量,第三次分组是统计每个用户最大连续登录天数 知识点 1、row_number添加序号,无论字段值是否相同 2、date_sub(日期,数值),用日期-数值,即当前日期前...n天,返回值是日期字符串类型 分析中第3点在hive sql系列(三)中计算连续日活中也用到了日期差值,参考链接: hive sql(三)—— 求所有用户和活跃用户总数及平均年龄

2.7K30

Excel巧算连续打卡最长天数

然而,有时由于各种原因,我们可能偶尔会中断打卡,那么,我们要知道在打卡记录中,连续打卡(也就是坚持)最长天数,应该怎么做呢?这就是今天我们想要用公式来解决问题。 示例数据如下图1所示。...希望使用公式得到: 1.连续打卡最长天数 2.最长坚持打卡是从哪里开始 这里关键是找出由TRUE变到FALSE或者由FALSE变到TRUE位置。可以错位比较,找出单元格值变化位置。...),B5:B245),0) 在其中查找最长天数出现位置: MATCH(F6-1, IFERROR(SMALL(IF(C6:C245C5:C244,B5:B244),B5:B244)-SMALL(IF...(C4:C244C5:C245,B5:B245),B5:B245),0),0) 然后在数组: IF(C4:C243C5:C244,B5:B244) 中查找最小值,即为最长天数开始位置 完整公式为...Bug:本示例假设连续打卡天数总是大于连续中断天数,否则上述结果不正确。 下面是更酷公式。

1.1K20

『数据分析』pandas计算连续行为天数几种思路

我们第72篇原创 作者:才哥 ---- ☆ 大家好,我是才哥。 最近在处理数据时候遇到一个需求,核心就是求取最大连续行为天数。...求连续污染持续天数 结合上次《利用Python统计连续登录N天或以上用户》案例,我们这里再提供1种新解题思路,合计2种解题思路。 以下解法来自小明哥和才哥 2.1....{x.max()}', # 求起止日期 '空气质量':"count", # 求连续天数 }).nlargest(5,'空气质量') # 取 空气质量 字段最大前5组数据 ?...图7:辅助列值预览 我们可以发现,按照辅助列分组进行计数即可获得连续污染天数,如上红色标记区域。...图10:思路2解法2小明哥结果 以上就是本次全部内容,其实我们在日常工作生活中还可能遇到类似场景如:计算用户连续登录天数、计算用户连续付费天数、计算南方梅雨季节连续下雨天数等等!

7.2K11

如何查找递增连续数组中缺失数字

在一个长度为n递增数组中,数组中元素范围是0 ~ n-1,如何在这个递增连续数组中查找缺失数字? 分析下: 1. 排序数组中搜索算法,首先想到就是二分法查找 2....丢失数字之前左子数组:nums[m] = m, 需要找到第一个nums[m] > m数组索引值即可....移动边界指针 Nums[3] = 3,左指针右移,同时,已经知道了m指针位置,指针值与元素值是相同,查找值一定是在[m+1,r]区间中,所以左指针移动到m+1位置....在处理边界值时候,在(i == r)时候,还多需要多遍历一次,向右移动左指针一次. 4. 这时,左指针值便是最后想要值. 所以我们遍历条件为(l<=r),最后左指针位置即为缺失结果值....综上,对于有序数组查找,一般都会使用二分法查找.在查找数据时候,注意左右边界指针移动.以及遍历标记(l<=j)即可.

3.1K21

HiveSQL-面试题027 当天活跃用户当前连续活跃天数

一、题目 有用户登录日志表,包含日期、用户ID,当天是否登录,请查询出当天活跃用户当前连续活跃天数; +-------------+----------+-----------+ | login_date...| | 2023-08-03 | 4 | 1 | +-------------+----------+-----------+ 二、分析 一眼看上去,连续登录问题...,然后balabla……(如果这样,就走弯路了,首先该题目中原始数据经过清洗,其次需求只需要当前登录用户最近联系登录数据,而不是求历史所有的最大连续登录,千万别思维定式); 1.找到所有用户最后未登录日期...; 2.筛选出最后未登录日期数据,(如果不存在未登录数据,则代表该用户一直连续登录) 3.对筛选结果进行分组统计; 维度 评分 题目难度 ⭐️⭐️⭐️ 题目清晰度 ⭐️⭐️⭐️⭐️⭐️ 业务常见度 ⭐️...用户3最后一天是未登录状态,所以结果记录中不存在用户3登录记录。

16510

Oracle,查找所有至少连续出现N次数字

OracleLeetCode Oracle,查找所有至少连续出现N次数字 起因 leetcode180 刷到Leetcode第180题.连续出现数字 一开始看到题目的时候就觉得有见过类似场景,一下子想不起来...,觉得跟我平常工作中取开仓日很像,思索一会无思路,去看题解,发现大家用是多表关联和lead聚合函数,无法复用决定研究。...t.num, ROW_NUMBER() over(partition by t.num order by t.id) as r_sort from Logs t 如果num连续时...r_sort是递增,id也是递增 这时候相减就会得出一个相同值 select t.id, t.num, ROW_NUMBER() over(partition by...by t.num order by t.id) as d_sort from Logs t) t group by t.num,d_sort having count(d_sort)>=3; 当统计连续

1.6K10

制作 m 束花所需最少天数(二分查找

制作花束时,需要使用花园中 相邻 k 朵花 。 花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。 请你返回从花园中摘 m 束花需要等待最少天数。...花园在 7 天后和 12 天后情况如下: 7 天后:[x, x, x, x, _, x, x] 可以用前 3 朵盛开花制作第一束花。但不能使用后 3 朵盛开花,因为它们不相邻。...小张刷题计划(二分查找) LeetCode 875. 爱吃香蕉珂珂(二分查找) LeetCode 1011....在 D 天内送达包裹能力(二分查找) 每个位置花,只能采一次,一束花要k朵连续花 二分查找开花天数 mid,在 mid 天下,看能不能满足要求 class Solution { //C++ public...0, flowercount = 0; for(auto d : day) { if(days/d >= 1)//能开花 flowercount++;//连续开花数量

53520

MRP库存供应天数(StckDS)和收货供应天数(RDS)

我们在MD07里面,可以看到三个天数: 1、库存可供应天数(StckDS) 2、第一次日供应量收货(RDS 1) 3、第二接货日期收货(RDS 2) 而且信号灯显示就是按照这三个天数来进行设置...那么这三个天数到底是如何计算呢? 首先我们看本文举一个例子: 这里三个日期分别显示4.5天、6.3天、6.3天。...有一个计算公式: 库存可供应天数=(可用性数量为负最早日期 - 当前日期 - 1)+ 不为负最近可用性数量/需求数量。 注意:①这里可用性数量只算库存。...第一次日供应量收货天数=(可用性数量为负最早日期 - 当前日期 - 1)+ 不为负最近可用性数量/需求数量。 注意:①这里可用性数量包含库存加收货。...收货包含单据类型,配置如下: 对应第一收货供应天数和第二收货供应天数,其区别如下配置: 如有不对之处,请斧正。

1.5K10

Sqlite Queue(Python) – 简单SQLite队列

文章目录[隐藏] 简介 示例 项目地址 老物搬运23333 简介 基于python实现sqlite队列,方便处理sqlite并发。并且包含一个十分简洁好用SQL语句包装。...而且大部分代码都是在手机QPython上完成,于是质量可想而知(不过我尽量都改掉了QAQ)。 示例 一个简单队列可以在两行代码实现。...import sqlite_queue queue = sqlite_queue.SqliteQueue('test.db') queue.start() 以下是一个完整示例: import sqlite_queue...其实回调也是很棒,比如INSERT语句就可以返回当且操作行数。具体文档看这里:WIKI-回调函数。...对了,peewee也是支持哒~ 项目地址 https://gitee.com/kaaass/sqlite_queue_python 欢迎各位前往Star、Fork!

1.5K10
领券