gpt4 book ai didi

mysql - 查询事件持续时间

转载 作者:行者123 更新时间:2023-11-29 17:48:06 25 4
gpt4 key购买 nike

假设我有一个注释表,其中包含(除其他外)一个条目,该条目指示员工何时开始/结束项目工作;只会有一个注释指示“开始”,但可能有许多不同的条目来指示“结束”(我们会忽略任何额外的“结束”日期”)。有时会有多人同时工作项目的时间,以及无人参与该项目的时间。

我需要查询该表,以确定有人参与该项目的天数:

projectID    dateStart     dateEnd
--------- ---------- ----------
20769720 2018-01-26
20769720 2018-01-29
20769720 2018-02-02
20769720 2018-03-20
20825496 2018-02-07
20825496 2018-02-12
20825496 2018-03-07
20825496 2018-03-15

上表是我们提取的描述开始/结束日期的“关键”事件,可以看到:

[项目 20769720] 1 月 26 日至 29 日(4 天)有人工作;[项目 20825496] 有人从 2 月 7 日到 3 月 7 日(28 天)工作,从 3 月 15 日到现在(19 天)= 总共 47 天

我们考虑将数据存储到临时表中,并通过多次更新来处理数据,但我们无法为此创建临时表、游标或存储过程;这一切都必须在查询中才能返回:

projectID    days
--------- ----
20769720 4
20825496 47

最佳答案

获取最小 dateStart 和最大 dateEnd,并找出差异。请记住,如果项目开始和停止(即工作中有间隙),这将无法正常工作。

SELECT
projectID,
DATEDIFF(min(dateStart),max(dateEnd)) as `days`
FROM projectLog a
GROUP BY projectID

关于mysql - 查询事件持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49634244/

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