---
tags: sql, LeetCode
disqus: HackMD
---
# 1741. Find Total Time Spent by Each Employee
`Find Total Time Spent by Each Employee`
透過`leetcode 1741`[Find Total Time Spent by Each Employee](https://leetcode.com/problems/find-total-time-spent-by-each-employee/description/?envType=study-plan&id=sql-i)來練習
#### 使用table

(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
按任意順序返回結果表。
查詢結果格式如下例所示。

## 解題:
以下為第一個解法
先將`in_time` & `out_time` sum 起來
再select一次時將 `sum(out_time)` - `sum(in_time)`
```sql=
SELECT m.event_day as day,m.emp_id,isnull(m.CO,0) - isnull(m.CI,0) as total_time FROM (
SELECT event_day,emp_id,sum(in_time) as CI,sum(out_time) as CO FROM Employees
group by event_day,emp_id
) M
order by day
```
By. @UEW2WaUHTqSmPOSfnfXrNw