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

仅跟踪工作日的连续缺勤天数SQL

连续缺勤天数SQL是一种用于跟踪员工在工作日中连续缺勤的数据库查询语言。它可以帮助企业管理人员监控员工的出勤情况,并及时采取相应的措施。

在SQL中,可以使用以下查询语句来计算连续缺勤天数:

代码语言:txt
复制
WITH cte AS (
  SELECT 
    attendance_date,
    ROW_NUMBER() OVER (ORDER BY attendance_date) AS rn
  FROM 
    attendance_table
  WHERE 
    attendance_status = '缺勤'
    AND WEEKDAY(attendance_date) BETWEEN 0 AND 4 -- 限定为工作日
)
SELECT 
  MIN(attendance_date) AS start_date,
  MAX(attendance_date) AS end_date,
  COUNT(*) AS consecutive_absence_days
FROM 
  cte
GROUP BY 
  DATE_SUB(attendance_date, INTERVAL rn DAY)
ORDER BY 
  consecutive_absence_days DESC
LIMIT 1;

上述查询语句的步骤如下:

  1. 使用attendance_table表示员工的考勤表,其中包含了员工的出勤日期和出勤状态。
  2. 使用ROW_NUMBER()函数为每个缺勤日期分配一个行号,按照日期的升序排列。
  3. 使用WEEKDAY()函数限定只计算工作日的缺勤情况。
  4. 使用WITH子句创建一个公共表达式(CTE),命名为cte,其中包含了缺勤日期和行号。
  5. 在主查询中,使用DATE_SUB()函数计算每个缺勤日期与其行号之间的日期差,以便将连续缺勤的日期分组。
  6. 使用MIN()MAX()函数分别计算连续缺勤的起始日期和结束日期。
  7. 使用COUNT(*)函数计算连续缺勤的天数。
  8. 使用GROUP BY子句按照日期差分组。
  9. 使用ORDER BY子句按照连续缺勤天数降序排列。
  10. 使用LIMIT子句限制只返回最长的连续缺勤天数。

这样,通过执行上述SQL查询语句,可以得到员工在工作日中连续缺勤的天数、起始日期和结束日期。

腾讯云提供了多种与数据库相关的产品和服务,例如:

  • 云数据库 TencentDB:提供了多种数据库引擎(如MySQL、SQL Server、MongoDB等),可满足不同业务场景的需求。详情请参考:云数据库 TencentDB
  • 分布式数据库 TDSQL:基于TDSQL分布式数据库引擎,提供了高性能、高可用的数据库服务。详情请参考:分布式数据库 TDSQL
  • 时序数据库 TSPDB:专为物联网、大数据等场景设计的高性能时序数据库。详情请参考:时序数据库 TSPDB

以上是关于连续缺勤天数SQL的完善且全面的答案,希望能对您有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

员工考勤记录

本文链接:https://blog.csdn.net/weixin_42449444/article/details/102076821 题目描述: 给定一个字符串来代表一个员工考勤纪录,这个纪录包含以下两个字符...: 'A' : Absent,缺勤 'P' : Present,到场 如果一个员工考勤纪录中不超过两个'A'(缺勤),那么这个员工会被奖赏。...如果你作为一个员工,想在连续N天考勤周期中获得奖赏,请问有多少种考勤组合能够满足要求 输入描述: 考勤周期天数N(正整数)。 输出描述: 这N天里能获得奖赏考勤组合数。...输入样例: 3 输出样例: 7 解题思路: 招银网络校招,简单排列组合问题。这题本质就是求出 ? 值。...std; int main() { ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); int n; //考勤周数天数

1.1K10
  • 面试真题 | 腾讯数据分析最爱考两道面试题

    我们团队这边比较关注还是SQL和Python技能,所以但凡学生声称自己熟练掌握SQL和Python,都会详细考察一下实际能力。所以两道题目,一道是SQL题,一道是Python题。...SQL题目 这道题目还挺舍不得分享出来,不过我自己用下来是真的觉得堪称SQL试金石。不仅是校招生,就算是写了好多年SQL的人,也不一定真的能快速想出来答案,但被告知答案了又会觉得真的其实蛮简单。...题目:有一张用户签到表【t_user_attendence】,标记每天用户是否签到(说明:该表包含所有用户所有工作日出勤记录) ,包含三个字段:日期【fdate】,用户id【fuser_id】,用户当天是否签到...【fis_sign_in:0否1是】; 问题1:请计算截至当前每个用户已经连续签到天数(输出表包含当天签到所有用户,计算其连续签到天数) 输出表【t_user_consecutive_days】:...问题2:请计算每个用户历史以来最大连续签到天数(输出表为用户签到表中所有出现过用户,计算其历史最大连续签到天数) 输出表【t_user_max_days】:用户id【fuser_id】,用户最大连续签到天数

    2.5K30

    人力资源各模块数据指标及计算公式

    、复试转换率、实际到岗率 ●招聘总成本=招聘周期内招聘总投入 ●人均招聘成本=招聘周期内招聘总投入÷该周期招聘录用的人数 ●招聘成本系数(招聘成本)=招聘周期内招聘总投入÷该周期招聘人数月薪之和...、一般培训设备折旧和保养费用 1、培训学员、辅助培训人员工资等2、培训管理、直接费用3、其他相关费用 六、薪酬数据分析 ●月薪工资:月工资额÷21.75天×当月考勤天数 ●月计件工资:计件单价×当月所做件数...●薪酬曲线偏离度:薪酬分位中根据偏离度分析各个层级岗位薪酬差距和市场水平差距。...●利润总额:营业利润+营业外收入-营业外支出 九、考勤数据分析 ●个人出勤率:出勤天数÷规定工作日×100% ●加班强度比率:当月加班时数÷当月总工作时数×100% ●人员出勤率:当天出勤员工人数÷...当天企业总人数×100% ●人员缺勤率:当天缺勤员工人数÷当天企业总人数×100% ●非计划缺勤

    2.7K53

    Excel自动生成进度跟踪

    昨天我们讲了 excle自动生成 项目计划图 但那个是静态,除非一切都能按照图中计划进行,否则计划图并不实用,只能在项目开始阶段用来做计划。 那么,项目进行中如何动态跟踪项目状态呢?...今天我们来讲Excel生成进度跟踪图,而且全自动!! 1. 表格是图表数据库,先写好表格。...对这种图来说,重要就是四个数据:计划开始时间,实际开始时间,计划天数,实际使用天数 注意: 黄色部分是手工填写 工作日使用函数=NETWORKDAYS(E7,D7)来计算 日历时间直接日期-日期即可...实际使用天数, 用来表示任务完成程度,是任务完成率和计划天数乘机,不是真的天数!!...真的天数请看 日历计划天数工作日天数 ? 2.插入累积条形图 ? 由于此时图表中有四项内容,需将实际开始日和实际工时置于次坐标轴上。在图表中点击右键,选择“更改系列图表类型”。 ? ?

    2K20

    【leetcode刷题】T82-学生出勤记录 I

    【题目】 给定一个字符串来代表一个学生出勤记录,这个记录包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个学生出勤记录中不超过一个...'A'(缺勤)并且不超过两个连续'L'(迟到),那么这个学生会被奖赏。...示例 1: 输入: "PPALLP" 输出: True 示例 2: 输入: "PPALLL" 输出: False 【思路】 统计A个数,大于1则返回False;统计连续L个数,大于2则返回False...                if countA > :                     return False             elif si == 'L':                 # 不是连续...countA++;                 if(countA > )                     return false;             }             // 连续

    42620

    Excel实战技巧:使用日期时间值

    2.求两个日期之间天数 由于日期在Excel中表示为连续数字,为了找出任何给定2个日期之间有多少天,只需将两个日期相减。...例如,可以使用=TODAY()-DATE(2020,12,7)获取自2020年12月7日)以来天数。 3.格式化日期 如果不能让它看起来像你想要那样,那么在工作表中包含日期/时间是不够。...只需选择带有日期单元格并按Ctrl+1组合键,然后在“数字”选项卡中选择“自定义”,设置类型为: yyyy"年"m"月"d"日",aaaa 4.自动填充工作日 输入前几个日期,选择这几个输入日期,...=TODAY()+7:返回今天开始7天后日期。 =TODAY()-DATE(2021,1,1):返回今天与指定日期2021年1月1日之间天数。...=WORKDAY(TODAY(),5):返回今天开始5个工作日日期。 =NETWORKDAYS(DATE(2021,8,1),DATE(2021,8,31)):返回2021年8月工作日天数

    3.8K30

    腾讯面试题:你今天上班打卡了吗?

    image.png 问题:计算截至当前每个用户已经连续签到天数(输出表包含当天签到所有用户,计算其连续签到天数) 【解题步骤】 1.分组排序 先看问题,要求输出两个字段:当天签到用户id和连续签到天数...因为在给出示例数据中,用户id为1用户每天都签到,没有未签到日期。那么这类用户连续签到天数该如何计算呢?...我们可以查询用户签到表开始日期,将那天作为该用户开始签到日期,计算该日期和当天间隔,然后加1,即为该用户连续签到天数。...查询用户签到表开始日期SQL如下: image.png 2.表联结 题目要求,输出表包含当天签到所有用户。因此需要2个表,表b为当天签到用户id,表a为每个用户id最近一次未签到日期。...因此在以用户id关联两个表时,若在表b中用户id关联不到时,使用用户签到表开始日期,计算连续签到天数

    68700

    四个方法,拯救你枯燥数据日报

    日报、周报、月报,是数据分析师最常做东西,也是最讨厌东西。每次都是对着模板更新,无聊至极。领导们平时不咋看,看时候又喜欢抱怨:“这都没啥发现啊!” 在这仨哥们里,最最令人头大就是:数据日报。...比如一个班里有20名同学,如果每天班长点名报告: “今天有19人来上课,缺勤1人” “今天有18人来上课,缺勤2人” “今天有20人来上课,缺勤0人” 听久了,肯定没啥感觉了(如下图): 同样数据,...但是 1、当一个学霸同学突然缺勤了,可能他有啥问题,要关注下 2、当一个学渣连续缺勤太多,触及管理底线,就得警告一下 3、发生了突然事件(下大雨了),大家都缺勤了,这个也能理解 4、如果没有啥事发生,大家都缺勤...特别是这种原本不该缺勤的人缺了,这种医疗之外问题,就更能引起人们重视。 狗咬人不是新闻,人咬狗才是。想要让汇报信息引起足够注意,就得暴露这种意料之外问题,这样才不会让人听了毫无感觉。...同时在突发事件发生时候,先提示大家:“今日有事发生,预计影响指标走势”然后进行跟踪。这样能让大家充分关注日报信息,提升看日报感受。

    32720

    招商银行校招题一

    ,考虑到在不够吃情况下,可以吃其他堆, 那么最大情况一定是最大堆量,这样可以保证一次可以吃一堆,然后采用二分法进行尝试吃,找到第一个可以吃完,而下一个不能吃完,就是我们要找答案 import java.util...180 度后,我们仍可以得到一个有效,且和 X 不同数。...如果一个数每位数字被旋转以后仍然还是一个数字, 则这个数是有效。...,这个纪录包含以下两个字符: 'A' : Absent,缺勤 'P' : Present,到场 如果一个员工考勤纪录中不超过两个'A'(缺勤),那么这个员工会被奖赏。...如果你作为一个员工,想在连续N天考勤周期中获得奖赏,请问有多少种考勤组合能够满足要求 输入描述: 考勤周期天数N(正整数) 输出描述: 这N天里能获得奖赏考勤组合数 3 7 思路 :

    49120

    Python生成中国节假日工作表,快速给数据库内生成工作日

    有时候,我们处理一些业务,比如:计算员工请假时间工作日;就需要数据库内存在一张工作日历,记录调休和节假日。实际上,是有很多公共接口。...对于中国节假日,最准确肯定是中国政府网每年下半年发布次年节假日和调休表(每次都是第一时间关注又要调休几次、最多要连续上几天班╳╳○○),比如: 2024年放假安排如何获取一个离线日历库呢?...比较有趣是节日中英名字映射、放假天数,LKI/chinese-calendar使用是枚举类:class Holiday(Enum): def __new__(cls, english, chinese...使其生成SQL脚本。数据库设计既然需要一张表来存储工作日历,那么数据库表应该如何设计?...因为需要一次性生成一年工作日历,所以我们需要先获取一年数据日期,之后遍历数据日期,使用LKI/chinese-calendar去解析每次数据日期,将返回结果包转为CSV或者拼接SQL

    40011

    招募|产品运营实习生

    招聘职位: 腾讯课堂产品运营实习生 地点:深圳 岗位职责: 1、负责产品运营,策划平台活动,提供活动创意,并根据活动方案完成落地;  2、负责课程运营和学生管理,对接课程、学校与学员;  3、跟踪分析用户行为数据...岗位要求: 1、本科及以上学历,专业不限,2019年毕业本科生或研究生优先; 2、对互联网编程有兴趣有基础,或有在线教育产品实习经验者优先; 3、保证至少5-6个月实习期,每周工作日5天,课多可协商每周具体天数...; 4、可以提供腾讯实习证明,若表现优秀,可竞选转为正式实习生或留用; 5、有意向者请发送简历至v_jzqiu@tencent.com,邮件主题:【姓名+年级+可工作天数】 招聘职位: 腾讯课堂前端开发新媒体运营...地点:深圳 岗位职责: 1、优化前端开发公众号、知乎、社区运营方案,增强用户黏性; 2、策划公众号、知乎、社区平台活动,提供活动创意,并根据活动方案完成落地;  3、跟踪分析用户行为数据,进行分析...5、有意向者请发送简历至nicholluo@tencent.com,邮件主题:【姓名+年级+可工作天数】 扫码下方二维码, 就可以随时关注更多招聘资讯!

    39020

    MySQL查询连续打卡信息?

    导读 最近多次看到用SQL查询连续打卡信息问题,自己也实践一波。抛开问题本身,也是对MySQL窗口函数和自定义变量用法一种练习。...单用户连续打卡信息 得到这个结果,那么对于单用户时求其打卡信息就简单多了,例如求其最近连续打卡天数,则用如下SQL: 1SELECT 2 userid, dday, check_days...,筛选打卡天数大于0日期按降序排列,取出最近一条记录即为最近连续打卡日期。...筛选条件改成大于7就是最近连续7天打卡日期。得到查询结果: ? 单用户最近连续打卡信息 那么如果要查询历史打卡天数最长日期呢?...多用户连续打卡信息 在获得各用户连续打卡天数信息后,如果是查询各用户最近连续打卡天数,则可依据用户进行分组后查询该用户最近连续打卡天数大于0信息(为表述简单,记前面查询到衍生表为tmp表): 1SELECT

    4.1K10

    力扣题目汇总(单调数列,两个数组交集Ⅱ

    力扣题目汇总(单调数列,两个数组交集Ⅱ,学生出勤记录Ⅰ) 单调数列 1.题目描述 如果数组是单调递增或单调递减,那么它是单调。...我们可以不考虑输出结果顺序。 进阶: 如果给定数组已经排好序呢?你将如何优化你算法? 如果 nums1 大小比 nums2 小很多,哪种方法更优?...如果 nums2 元素存储在磁盘上,磁盘内存是有限,并且你不能一次加载所有的元素到内存中,你该怎么办?...,这个记录包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个学生出勤记录中不超过一个'A'(缺勤)并且不超过两个连续'...示例 1: 输入: "PPALLP" 输出: True 示例 2: 输入: "PPALLL" 输出: False 2.解题思路 #A大于1肯定没有奖励 #A小于1有L超过连续两次为没有奖励 #其他情况均为有奖励

    39120

    力扣题目汇总(单调数列,两个数组交集Ⅱ,学生出勤记录Ⅰ)

    力扣题目汇总(单调数列,两个数组交集Ⅱ,学生出勤记录Ⅰ) 单调数列 1.题目描述 1.如果数组是单调递增或单调递减,那么它是单调。...我们可以不考虑输出结果顺序。 进阶: 如果给定数组已经排好序呢?你将如何优化你算法? 如果 nums1 大小比 nums2 小很多,哪种方法更优?...如果 nums2 元素存储在磁盘上,磁盘内存是有限,并且你不能一次加载所有的元素到内存中,你该怎么办?...,这个记录包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个学生出勤记录中不超过一个'A'(缺勤)并且不超过两个连续'L'(...示例 1: 输入: "PPALLP" 输出: True 示例 2: 输入: "PPALLL" 输出: False 2.解题思路 #A大于1肯定没有奖励 #A小于1有L超过连续两次为没有奖励 #其他情况均为有奖励

    50630

    获取上下一个工作日实践

    获取上下一个工作日实践 前言 其实这个文章个人之前有进行过发布和讨论,在上一篇文章中,介绍了如何通过postgresql数据库sql语句构建一个工作日表,并且介绍如何使用sql语法获取某一天往前或者往后工作日或者自然日...本次实践只是个人提供一个工作日获取解决方案,如果有更好解决方案欢迎讨论和分享。...填充数据 有了表结构还不够,这里我们还需要填充数据,我们使用如下sql填充数据内容,sql语句可能略微复杂了些,另外执行过程中可能会出现缺失函数情况,由于个人使用过程中没有碰到此问题,所以就跳过了...获取某一天上一个工作日或者下一个工作日,或者获取自然日 获取工作日sql 首先我们需要根据当前天数获取某一天工作日列表: SELECT * FROM ( SELECT...写在最后 此工作日实现方法比较笨拙也比较简单,如果有好想法欢迎讨论。

    75710
    领券