sql - 从时间间隔数据绘制每小时条形图的优雅方法?

标签 sql excel charts group-by

我有一个显示开始和停止时间的时间表条目列表。这是位于 MySQL 数据库中的。我需要根据此数据创建条形图,底部显示一天中的 24 小时以及一天中每个小时的工作工时量。

例如,如果 Alice 的工作时间为 15:30 到 19:30,Bob 的工作时间为 12:15 到 17:00,则图表将如下所示:

Example Chart

我现在有一个 WTFey 解决方案,其中涉及将电子表格发送到 DY 列或类似的内容。所需的分辨率是 15 分钟间隔。

我假设这最好在数据库中完成,然后导出以创建图表。如果我遗漏了任何细节,请告诉我。谢谢。

最佳答案

创建一个表,其中包含从午夜到午夜的时间,其中包含一天中的每一分钟。在数据仓库领域,我们将其称为时间维度。这是一个例子:

TIME_DIM
 -id
 -time_of_day
 -interval_15 
 -interval_30

表中数据的示例如下

id   time_of_day    interval_15    interval_30
1    00:00          00:00          00:00
...
30   00:23          00:15          00:00
...
100  05:44          05:30          05:30

然后您所要做的就是将表连接到时间维度,然后按间隔_15 进行分组。例如:

SELECT b.interval_15, count(*) 
FROM my_data_table a
INNER JOIN time_dim b ON a.time_field = b.time
WHERE a.date_field = now()
GROUP BY b.interval_15

关于sql - 从时间间隔数据绘制每小时条形图的优雅方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/79789/

相关文章:

mysql - 使用 MySQL 选择父项和子项

excel - 如何使用 for/next VBA 调用 sub

vba - Excel VBA复制到空白行

mysql - 从单个表中选择两个用户之间的所有共同项目

mysql - SQL 错误 (1242) : Subquery returns more than 1 row

sql - 丢失空值,使用where过滤sql查询结果

vba - CountIf 返回 0 值

javascript - 融合图;从 map 中删除颜色范围 slider

图表:chart.ChartAreas.add 抛出异常:System.NotImplementedException

javascript - 否则如果方法执行失败怎么办?