mysql 查询覆盖率

标签 mysql sql

所以我有一个包含开始日期时间和结束日期时间的条目表,我希望能够看到重叠,例如员工覆盖范围。例如,我有 10 名轮类员工,他们的开始时间和结束时间不同,我希望能够按小时查询并查看每小时有多少员工可用。

我没有尝试过,因为我没有找到开始的地方,当他们在特定时间传入任务时,我会做类似的事情来查看每个小时有多少个任务,但我试图查看每个小时的覆盖范围基于员工开始和结束的时间,例如 8 小时轮类、12 小时轮类等。这样我就可以看到我有 2、3、4 等...覆盖范围并映射到进来的任务数量并已计划。下面的内容看起来很有希望,但每个查询只能执行 1 次,希望有一个查询可以返回每小时以及每小时有多少个覆盖。

任何帮助都会很棒。

最佳答案

尝试这样的事情:

SELECT count(*) as TOTAL 
FROM table
WHERE '2015-05-28 12:00:00' 
BETWEEN startTime and endTime

显然,您需要将此 '2015-05-28 12:00:00' 更改为您要查找的日期/时间。

如果需要,添加其他条件...

编辑

添加额外请求:

按日期和时间分组可提供每天一小时内的覆盖总数。

SELECT date(date_start) as DAY, hour(date_start) as HOUR, count(*) as TOTAL 
FROM table
group by date(date_start), hour(date_start)

您显然可以添加一个或多个条件。 IE。在下面的示例中,您将获得一天(指定)内每小时的总行数

SELECT date(date_start) as DAY, hour(date_start) as HOUR, count(*) as TOTAL 
FROM table
WHERE date('2015-05-28') = date(startTime)
group by date(date_start), hour(date_start)

关于mysql 查询覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30508483/

相关文章:

C# .NET 生成一次字符串数组,其索引是表中的字符串值

mysql - 使用mysql递归调用的存储过程

mysql - 我正在尝试将 where 子句放入 case 语句中

mysql - 将文件中的数据加载到特定的 mysql 分区

sql - 在 PostgreSQL 13(通过客户端 session )上更改 "wal_level"没有得到尊重

mysql - 从 group by 和 unique 获得不同的结果

php - 如何使用 appinventor + PHP 从 MySQL 检索多个值?

mysql - 使用 Laravel 比较不同表中的两个字段

MySQL 插入条件日期时间

mysql - PHP SQL 分页 LIMIT 子句