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

Sql如何统计连续打卡天数

总第208篇/张俊红 今天来解一道题面试中可能经常会被一些面试官拿来“刁难”的题,就是《如何统计连续打卡天数》,当然了这里面的打卡可以换成任意其他行为,比如连续登陆天数连续学习天数连续购买天数,这里的天数也是可以换成小时或者别的时间单位的...直接来看实战,现在有一张表t,这张表存储了每个员工每天的打卡情况,现在需要统计截止目前每个员工的连续打卡天数,表t如下表所示: uid tdate is_flag 1 2020/2/1 1 1 2020...到这里,如果我们要获取连续打卡天数是不是就很容易了。 不过这里面还有一个问题,就是连续打卡天数是截止目前最近的一个 连续打卡天数还是历史坚持最长的打卡天数,这就是传说中的口径问题哈。.../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,历史最长的连续打卡天数却是...类似的需求可能还有获取过去连续打卡天数大于某个值得人,只需要筛选上表中的flag_days即可达到目的。

3K10

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

还是昨天的问题,统计每周内问题小区连续出现天数,MySQL可以实现吗?答案是肯定的,就是过程很曲折。 数据库查询语言基本都是针对整列的,不像excel是单元格粒度的,要判断行与行之间的差异比较麻烦。...首先获取当前日期与一个较早的日期的差值 计算表中大于等于当前日期的行数 两个值求和,求和相等则为连续出现,否则为间隔出现 SQL 呼之欲出 mysql> select -> bc.cellid,...| +--------+--------+------+------+ 13 rows in set (0.00 sec) 得到了 diff 和 rows ,将两者相加,然后按照该列分组计数就是持续天数...,再加上周数,就是每周持续天数 完整代码如下: 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..., 4、整体的逻辑顺序是先排序添加序号字段、计算差值日期、统计差值日期相同数量、最后得出每个用户差值日期数最多即需求 扩展 1、这里t1,t2可以合并为一步,减少一次子查询 2、第一次分组是每个用户每天只有一条数据...,第二次分组是统计差值日期相同数量,第三次分组是统计每个用户最大连续登录天数 知识点 1、row_number添加序号,无论字段值是否相同 2、date_sub(日期,数值),用日期-数值,即当前日期的前

2.6K30

逾期天数怎么统计

如果在信贷中逾期了,我们如何计算逾期天数? 比如一个人在2022年4月由于疫情收入骤减,无奈产生了信贷逾期,到了2022年5月的时候情况好转,把逾期的钱还上了,这时怎么统计这个人的逾期天数?...本文目录 逾期天数的定义 逾期天数的计算逻辑 2.1 曾经逾期天数维度 2.2 当前逾期天数维度 2.3 曾经逾期天数和当前逾期天数统计的区别 一、逾期天数的定义 逾期指的是客户未能在应还款日全额偿还当月应还款额...逾期天数DPD(Days Past Due)指的是客户到了应还款日还未还款,逾期天数为应还日次日起到实还日(含)期间的日数,如客户当期未还款无实还日,则取数据统计日取代实还日。...逾期天数统计也分为曾经逾期天数和当前逾期天数。 接下来进行详细的说明。 二、逾期天数的计算逻辑 为了让大家对于逾期天数统计更加清晰,接下来采用画图的方法进行阐述。...当前逾期天数=观察日-应还日 3 曾经逾期天数和当前逾期天数统计的区别 从上面的分析可以看出只有在应还日<观察日,观察日已结清且结清日期在观察日之前这种情况下曾经逾期天数和当前逾期天数有区别。

1.4K30

Excel巧算连续打卡最长的天数

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

1K20

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

最近在处理数据的时候遇到一个需求,核心就是求取最大连续行为天数。类似需求在去年笔者刚接触pandas的时候也做过《利用Python统计连续登录N天或以上用户》,这里我们可以用同样的方法进行实现。...求连续污染持续天数 结合上次的《利用Python统计连续登录N天或以上用户》案例,我们这里再提供1种新的解题思路,合计2种解题思路。 以下解法来自小明哥和才哥 2.1....图7:辅助列值预览 我们可以发现,按照辅助列分组进行计数即可获得连续污染天数,如上红色标记区域。...图9:辅助列创建思路预览 我们也可以发现,按照辅助列分组计数即可获取空气质量连续天数(优良和污染均可),如上红色区域。...图10:思路2的解法2小明哥结果 以上就是本次全部内容,其实我们在日常工作生活中还可能遇到类似场景如:计算用户连续登录天数、计算用户连续付费天数、计算南方梅雨季节连续下雨天数等等!

6.9K11

redis中的bit运用统计用户在线天数

使用setBit和bitCount可以实现用户活跃天数统计,大体的思路如下: 我们网站今天第一天上线,某用户taoshihan,今天有访问那么我就记一下,网站第一天,taoshihan访问1; 网站第二天...,taoshihan访问1;网站第80天,taoshihan访问1;其余时间没有访问过,那么我们统计得出taoshihan活跃天数为3。...使用代码体现为如下,具体解释可以查看视频: https://www.bilibili.com/video/av70912075/ //使用setBit和bitCount实现用户在线天数统计 $redis...good'); $v=$redis->get('name'); var_dump($v);//string(19) "taoshihan very good" //对字符串二进制位为1的个数进行统计...3,1);//从左到右数,从0开始 $v=$redis->get("name"); var_dump($v);//输出q,二进制为01110001 //使用setBit和bitCount实现用户在线天数统计

58340

CSDN是怎么实现用户签到,统计签到次数,连续签到天数等功能微服务的

文章目录 需求分析 设计思路 用户签到和统计连续签到的次数 签到控制层 SignController 签到业务逻辑层 SignService 测试 按月统计用户签到的次数 签到控制层 SignController...t_user_sign),如下: 字段名 描述 id 数据表主键(AUTO_INCREMENT) fk_user_id 用户ID sign_date 签到日期(如2022-12-19) amount 连续签到天数...(如19) 用户签到:往此表插入一条数据,并更新连续签到天数; 查询根据签到日期查询 统计根据 amount 统计 如果这样存数据的话,对于用户量比较大的应用,数据库可能就扛不住,比如1000W用户,...用户签到和统计连续签到的次数 用户签到,默认是当天,但可以通过传入日期补签,返回用户连续签到次数(后续如果有积分规则,就会返回用户此次签到积分) 签到控制层 SignController /**...(BITFIELD key GET [u/i] type offset value, 获取从用户从当前日期开始到1号的所有签到状态,然后进行位移操作,获取连续签到天数) /** * 用户签到

2K20

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

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

12210
领券