gpt4 book ai didi

mysql - Sql 获取每个用户每天的小时数

转载 作者:行者123 更新时间:2023-11-29 16:02:13 25 4
gpt4 key购买 nike

表“日志”具有以下列:

SystemName
User
Datetime - it's a timestamp
Status - has the values Start or Stop.

我需要编写一个查询,该查询将为我提供:每个用户每天在系统 X 上花费的小时数。

请参阅下面的示例数据:

X, Amit, 05/01/2019 08:45:00, Start
X, Amit, 05/03/2019 13:25:00, Stop
X, Dave, 05/01/2019 09:10:35, Start
X, Dave, 05/01/2019 17:35:42, Stop

输出:

Amit,05/01/2019, 15h
Amit,05/02/2019, 24h
Amit,05/03/2019, 9h
Dave,05/01/2019, 8h

到目前为止我的做法:我想我可以使用超前或滞后来获得同一行中的连续时间。但对于用户 Amit 而言,该时间跨度为多天。还可能有用户在同一天多次启动和停止。即使我这样做了,我怎样才能为该范围内的日期生成小时数。你能帮我一下吗?

最佳答案

这应该有效。仅当用户在一天内同时存在“开始”和“停止”状态时,您才会获得花费的小时数。

SELECT SystemName,[user],
CONVERT(varchar, CAST(Datetime AS DATETIME), 1) Datetime,
DATEDIFF
(
HH,
MAX(CASE WHEN Ststus = 'Start' THEN [Datetime] ELSE NULL END ),
MAX(CASE WHEN Ststus = 'Stop' THEN Datetime ELSE NULL END )
)HourSpent
FROM your_table A
GROUP BY SystemName,[User],
CONVERT(varchar, CAST(Datetime AS DATETIME), 1)

关于mysql - Sql 获取每个用户每天的小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56091905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com