[SQL 문제 풀이] Find Total Time Spent by Each Employee

Stupefyee's avatar
May 02, 2025
[SQL 문제 풀이] Find Total Time Spent by Each Employee
Find Total Time Spent by Each Employee - LeetCode
Can you solve this real interview question? Find Total Time Spent by Each Employee - Table: Employees +-------------+------+ | Column Name | Type | +-------------+------+ | emp_id | int | | event_day | date | | in_time | int | | out_time | int | +-------------+------+ (emp_id, event_day, in_time) is the primary key (combinations of columns with unique values) of this table. The table shows the employees' entries and exits in an office. event_day is the day at which this event happened, in_time is the minute at which the employee entered the office, and out_time is the minute at which they left the office. in_time and out_time are between 1 and 1440. It is guaranteed that no two events on the same day intersect in time, and in_time < out_time.   Write a solution to calculate the total time in minutes spent by each employee on each day at the office. Note that within one day, an employee can enter and leave more than once. The time spent in the office for a single entry is out_time - in_time. Return the result table in any order. The result format is in the following example.   Example 1: Input: 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 | +--------+------------+---------+----------+ Output: +------------+--------+------------+ | 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 | +------------+--------+------------+ Explanation: Employee 1 has three events: two on day 2020-11-28 with a total of (32 - 4) + (200 - 55) = 173, and one on day 2020-12-03 with a total of (42 - 1) = 41. Employee 2 has two events: one on day 2020-11-28 with a total of (33 - 3) = 30, and one on day 2020-12-09 with a total of (74 - 47) = 27.
Find Total Time Spent by Each Employee - LeetCode
notion image
각 직원이 매일 사무실에서 보낸 총 시간을 분 단위로 계산하는 솔루션을 작성합니다. 하루 이내에 직원은 여러 번 출입할 수 있습니다. 한 번의 출입에 사무실에 머무는 시간은 out_time - in_time입니다. 결과 테이블을 순서에 상관없이 반환하세요.
 

내가 작성한 쿼리

Oracle

SELECT TO_CHAR(event_day, 'YYYY-MM-DD') day, emp_id, (sum(out_time) - sum(in_time)) total_time FROM Employees GROUP BY emp_id, event_day ORDER BY emp_id, day;

MySQL

SELECT event_day day, emp_id, (sum(out_time) - sum(in_time)) total_time FROM Employees GROUP BY emp_id, event_day;

차이점

  • 날짜 형식 변환
Share article

stupefyee