力扣-查找每个员工花费的总时间
创始人
2024-05-29 22:21:23
0

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。

文章目录

  • 前言
  • 一、题目:1741. 查找每个员工花费的总时间
  • 二、解题
    • 1.正确示范①
      • 提交SQL
      • 运行结果
    • 2.正确示范②
      • 提交SQL
      • 运行结果
    • 3.正确示范③
      • 提交SQL
      • 运行结果
    • 4.正确示范④
      • 提交SQL
      • 运行结果
    • 5.其他
  • 总结


前言


一、题目:1741. 查找每个员工花费的总时间

表: 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.正确示范①

提交SQL

select event_day day,
emp_id,
sum(out_time-in_time) total_time
from Employees
group by event_day,emp_id;

运行结果

2.正确示范②

提交SQL

select event_day day,emp_id,sum(time) total_time
from(select event_day,emp_id,out_time-in_time timefrom Employees
) u group by event_day,emp_id;

运行结果

3.正确示范③

提交SQL

select event_day day,
emp_id,
sum(out_time)-sum(in_time) total_time
from Employees
group by event_day,emp_id;

运行结果

4.正确示范④

提交SQL

select distinct event_day day,
emp_id,
sum(out_time-in_time) over(partition by event_day,emp_id)  total_time
from Employees;

运行结果

5.其他


总结

正确示范①思路:
group by event_day,emp_id
sum(out_time-in_time) total_time
正确示范②思路:
out_time-in_time time
group by event_day,emp_id
sum(time) total_time
正确示范③思路:
group by event_day,emp_id
sum(out_time)-sum(in_time) total_time
正确示范④思路:
sum(out_time-in_time) over(partition by event_day,emp_id) total_time
distinct


知识点:(group by & partition by
• group 单纯分组
• partition 也能分组,还具备累计的功能

相关内容

热门资讯

设计装装饰公司创业计划书修公司... 装饰公司计划书创业计划书怎么做创业计划书案例室内设计装修公司创业计划书装修公司项目计划书装饰公司创业...
精益创业 精益创业 精益创业方... 创新创业收获中国十大创业人轻创业模式对精益创业的理解精益创业为什么会流行精益创业的核心词汇精益创业电...
7月8日国内四大证券报纸、重要...   从《关于进一步培育新增长点繁荣文化和旅游消费的若干措施》发布,到《提振消费专项行动方案》出台,再...
和创会落地黑龙江 150个省外... 创新创业收获中国十大创业人轻创业模式对精益创业的理解精益创业为什么会流行精益创业的核心词汇精益创业电...
“城市·艺术·建筑”系列展开展 转自:天津日报  本报讯(记者 张帆)日前,“城市·艺术·建筑”系列展油画篇“城市乌托邦”在庆王府开...
“众星云集”不是票房灵药 转自:天津日报  改编自民国四大奇案之一,陈可辛执导,章子怡、雷佳音、王传君、赵丽颖、杨幂、李现、易...
适合小本创业的项目有哪5个 创... 小城镇创业项目创业小项目适合创业的小项目创业小项目推荐城镇适合创业的小生意城镇创业做什么生意好乡镇小...
合理使用资金 做精明的创业者 ... 怎么学互联网怎么赚钱我想创业但是没钱创业融资的渠道有哪些?一个人0资金怎么创业创新创业项目点子最挣钱...
以爱为笔绘就保障画卷 以责任担... 2025年7月8日是第十三个全国保险公众宣传日,中国人保财险江苏省分公司(以下简称“江苏人保财险”)...
我全职创业 虽然很难 但是我一... 怎么学互联网怎么赚钱我想创业但是没钱创业融资的渠道有哪些?一个人0资金怎么创业创新创业项目点子最挣钱...