1741-查找每个员工花费的总时间
查找每个员工花费的总时间
- 题目如下所示.
个人题解
这题看上去复杂,其实还是挺简单的。以下为个人思考过程
-
-- 1. 建表 -- 该表显示了员工在办公室的出入情况 CREATE TABLE 1741_Employees( emp_id INT, event_day DATE, -- 此事件发生的事件 in_time INT, -- 员工进入办公室的时间 out_time INT, -- 员工离开办公室的时间 PRIMARY KEY(emp_id, event_day, in_time) ); -- in_time 和 out_time 的取值仔 1到1440 之间(说明时间以分钟为单位) -- 题目保证同一天没有两个事件在时间上相交,并且保证 in_time 小于 out_time -- 2. 编写一个 SQL 查询以计算每位员工每天在办公室花费的总时间(以分钟为单位)。 -- PS:在一天之内,同一员工是可以多次进入和离开办公室的。 -- 在办公室里一次进出所花费的时间为 out_time 减去 in_time -- 首先以员工、日期分组,查看具体的情况 SELECT em.emp_id, em.event_day, GROUP_CONCAT(em.in_time), GROUP_CONCAT(em.out_time) FROM 1741_Employees em GROUP BY em.emp_id, em.event_day; -- 一个员工多次出入的情况下,怎么计算呢? -- 其实应该可以按照数学规律来计算,我们来验证一下 -- 32 - 4 = 28, 200 - 55 = 145 , 总计为 173 -- 200 + 32 - ( 4 + 55 ) = 173 -- 那么接下来的 SQL 编写就较为简单了,如下所示 SELECT em.event_day day, em.emp_id, SUM(em.out_time) - SUM(em.in_time) total_time FROM 1741_Employees em GROUP BY em.emp_id, em.event_day;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-07-11 05-Nacos注册中心
2022-07-11 04-Ribbon负载均衡
2022-07-11 03-Eureka注册中心
2022-07-11 02-服务拆分和远程调用
2022-07-11 01-微服务的概念