StackOverflowで同様の質問を探し続けていますが、見つからないようです。従業員IDでグループ化された異なる行のタイムスタンプの違いを知りたいのですが。
時間ログテーブル:
id timestamp log_type
1 2019-06-19 12:34:50 log_in
2 2019-06-19 13:12:46 start_break
3 2019-06-19 13:13:56 end_break
4 2019-06-19 17:23:40 start_break
5 2019-06-19 17:44:36 end_break
6 2019-06-19 19:00:04 start_break
7 2019-06-19 19:03:17 end_break
8 2019-06-19 20:05:54 log_out
私が達成しようとしているのは、休憩のすべての期間を計算することです。この場合、1回目の休憩(id#2と#3)は1分10秒、2回目の休憩(id#4と#5)は20分56秒、3回目の休憩(id#6と#7)は3です。分と13秒、つまり合計25分19秒になります。
助けてくれてありがとう!大変感謝いたします。
以下を試すことができます-
select SEC_TO_TIME(sum(diff)) as result from
(
select
timestampdiff(second,min(case when log_tpe='start_break' then timestamps end) ,
min(case when log_tpe='end_break' then timestamps end)) as diff
from t
group by date(timestamps),hour(timestamps)
)A
出力:
result
00:25:19
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加