写点什么

数据库每日一题 --- 第 21 天:员工花费的总时间

作者:知心宝贝
  • 2022 年 7 月 10 日
  • 本文字数:1104 字

    阅读完需:约 4 分钟

数据库每日一题---第21天:员工花费的总时间

一、问题描述

Employees


+-------------+------+| Column Name | Type |+-------------+------+| emp_id      | int  || event_day   | date || in_time     | int  || out_time    | int  |+-------------+------+(emp_id, event_day, in_time) 是这个表的主键。该表显示了员工在办公室的出入情况。event_day 是此事件发生的日期,in_time 是员工进入办公室的时间,而 out_time 是他们离开办公室的时间。in_time 和 out_time 的取值在1到1440之间。题目保证同一天没有两个事件在时间上是相交的,并且保证 in_time 小于 out_time。
复制代码


编写一个SQL查询以计算每位员工每天在办公室花费的总时间(以分钟为单位)。 请注意,在一天之内,同一员工是可以多次进入和离开办公室的。 在办公室里一次进出所花费的时间为out_time 减去 in_time


返回结果表单的顺序无要求,查询结果的格式如下:


题目链接员工花费的总时间

二、题目要求

样例

Employees table:+--------+------------+---------+----------+| emp_id | event_day  | in_time | out_time |+--------+------------+---------+----------+| 1      | 2020-11-28 | 4       | 32       || 1      | 2020-11-28 | 55      | 200      || 1      | 2020-12-03 | 1       | 42       || 2      | 2020-11-28 | 3       | 33       || 2      | 2020-12-09 | 47      | 74       |+--------+------------+---------+----------+Result table:+------------+--------+------------+| day        | emp_id | total_time |+------------+--------+------------+| 2020-11-28 | 1      | 173        || 2020-11-28 | 2      | 30         || 2020-12-03 | 1      | 41         || 2020-12-09 | 2      | 27         |+------------+--------+------------+雇员 1 有三次进出: 有两次发生在 2020-11-28 花费的时间为 (32 - 4) + (200 - 55) = 173, 有一次发生在 2020-12-03 花费的时间为 (42 - 1) = 41。雇员 2 有两次进出: 有一次发生在 2020-11-28 花费的时间为 (33 - 3) = 30,  有一次发生在 2020-12-09 花费的时间为 (74 - 47) = 27。
复制代码

考察

1.聚合函数2.建议用时10~25min
复制代码

三、问题分析

这一题题目要求我们计算每个员工在办公室花费的总时间,注意每天相同的员工也是可以自由出入的,这里我们要根据event_day,emp_id进行聚合分组,对于分组之后的总时间如何计算呢?


总时间可以使用sum(out_time-in_time)这种方法直接计算结果,没有必要一行行判断了。

四、编码实现

select event_day as 'day',emp_id,sum(out_time-in_time ) as 'total_time'from Employeesgroup by event_day,emp_id
复制代码

五、测试结果




发布于: 2022 年 07 月 10 日阅读数: 4
用户头像

知心宝贝

关注

公众号:穿越计算机的迷雾 2022.03.07 加入

生于尘埃 溺于人海 死于理想高台

评论

发布
暂无评论
数据库每日一题---第21天:员工花费的总时间_数据库_知心宝贝_InfoQ写作社区