sql如何求连续打卡
前言:
前一段时间遇到了一个需求,有一个运营活动要求在站内连续发布部分问题回答的学员,每日发布多次也算一次。当时绞尽脑汁最后求了 用户和有发布回答的天数排序的数据,但是连续问题想了一两个小时没得题解。幸亏那次数据量不大,后来直接用excel手动筛选解决了问题。
后来一个朋友又遇到了这个问题询问我有没有解决办法,我当时对他说没有,他当时狠狠鄙视了我一下,说 ‘你不是sql精通吗?就这就这?’。后来这个题解还是在我朋友那得到的,他们公司的一个sql大佬写的一个思路,思路大概如下图
这个时候可能有的同学有点懵,‘这啥玩意啊,就这都解了?’。当然解题不会那么简单,这只是一个思路,不过遇到这个问题的同学看到这张图片我觉着应该也有解题办法了。
正文题解
member_id | publish_date | answer_id |
---|---|---|
123 | 2022-12-26 | 12344 |
假设有表 answer ,其中有字段member_id、publish_date、answer_id,要求在2022-12-01到2022-12-31作者最大连续发布回答的最大天数。
select--求出作者id,最大打卡次数member_id,max(num) as continue_day
from(-- 求出作者id,总日期和打卡日期排序后相差的天数,相差天数的打卡数selectt2.member_id,t1.order_num1 - t2.order_num2 as gap_date,count(1) as numfrom(--取出全部时间,并按照时间去重排序selectdistinct publish_date,dense_rank() over(order bypublish_date) as order_num1fromanswerwherepublish_date between '2022-12-01' and '2022-12-31') t1left join (--取出全部打卡的数据,按照作者和天进行去重排序selectdistinct member_id,publish_date,dense_rank() over(partition by member_idorder bypublish_date) as order_num2fromanswerwherepublish_date between '2022-12-01' and '2022-12-31') t2 on t1.publish_date = t2.publish_dategroup byt2.member_id,t1.order_num1 - t2.order_num2) as a
group bymember_id
sql如何求连续打卡相关推荐
- Sql如何统计连续打卡天数
总第208篇/张俊红 今天来解一道题面试中可能经常会被一些面试官拿来"刁难"的题,就是<如何统计连续打卡天数>,当然了这里面的打卡可以换成任意其他行为,比如连续登陆天数 ...
- mysql 连续打卡_MySQL查询连续打卡信息?
最近多次看到用SQL查询连续打卡信息问题,自己也实践一波.抛开问题本身,也是对MySQL窗口函数和自定义变量用法的一种练习. 01 建表 所用数据库为MySQL8.0,简单而不失一般性,建立一个仅有记 ...
- mysql连续打卡次数_MySQL查询连续打卡信息?
导读:最近多次看到用SQL查询连续打卡信息问题,自己也实践一波.抛开问题本身,也是对MySQL窗口函数和自定义变量用法的一种练习. 00 建表 所用数据库为MySQL8.0,简单而不失一般性,建立一个 ...
- php取数组中连续数,PHP实现求连续子数组最大和问题2种解决方法
本文实例讲述了PHP实现求连续子数组最大和问题2种解决方法.分享给大家供大家参考,具体如下: 问题描述 求子数组的最大和 题目描述: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整 ...
- SQL Server数据库连续集成(CI)最佳实践以及如何实现它们–测试,处理和自动化
测试中 (Testing) Test databases should be processed with unit tests In many shops code is unit tested a ...
- sql 求相交的行_SQL相交
sql 求相交的行 In a day to day scenario, we do meet with requirements where we need to get the common res ...
- 大数据练习题mysql之求连续出勤和连续最大登陆天数
某APP活跃用户,字段uid和dt两个字段,求连续出勤天数大于等于三天的用户和用户最大登录天数 求连续出勤天数,使用row_number()方法: SELECT a.uid,DATE_SUB(a.dt ...
- SQL server求百分比
SQL server求百分比 select convert(decimal(18,0),(19.0/101.0)*100) as LT5--结果19 通过上面的语法可以将19/101的百分比算出 但是 ...
- 求连续子序列平均最大权值的问题
原题链接 求长度为n.m(<=1e5)的a,b两组数组一段长度不小于x.y的连续子序列平均最大权值. 分析: 要求一个数组a长度不小于len的连续子序列平均最大权值. 二分答案x,令b[i]=a ...
最新文章
- 演示:思科设备基于物理接口帧中继(fame-relay)的配置
- 调试寄存器(debug registers, DRx)理论及实践
- MapReduce TopK统计加排序
- 计算机供用户使用的内存区域,计算机应用复习资料
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--L-用来作弊的药水
- 2008年CCNA第二学期第九单元题目(2008-12-14 14:04:38)
- NOIP2001-普及组复赛-第2题-最大公约数和最小公倍数问题
- 题库:queryset数据类型的特性
- 解决springboot启动失败问题:Unable to start embedded container;
- python做一个本地搜索工具_用Python打造一款文件搜索工具,所有功能自己定义!...
- 什么是python的内置函数_python 内置函数
- paddlepaddle手写字体识别
- oracle可恢复的等待,【案例】Oracle RAC恢复报错RMAN-06004 RMAN-20003解决办法笔记
- 如何清理和优化你的Mac:14个小技巧推荐给你!
- RMAN备份归档日志时的not backed up与catalog数据库结合时的问题
- 【M365运维】查看电脑硬盘加密状态是否同步到 Intune
- 应用技术大公开系列Q之十一:(纤维).石墨烯纸制备工艺 (*3-4)
- BeanFactory和ApplicationContext的区别
- 【BUAA_CO_LAB】计组p2碎碎念
- 携程CPS分佣怎么推广?