如何按特定日期范围(例如小时、日、月)对数据进行分组?

Posted

技术标签:

【中文标题】如何按特定日期范围(例如小时、日、月)对数据进行分组?【英文标题】:How do I group my data by specific date ranges, like hour, day, month? 【发布时间】:2022-01-19 15:34:48 【问题描述】:

我的数据包含两个时间戳startend。我如何对其进行分组,以便我可以显示 end-start 的差异小于一个月、小于一周、一天等的所有数据点?

示例数据:

start end price
2021-12-15 23:00:00 UTC 2022-06-24 22:00:00 UTC 120
2021-12-17 23:00:00 UTC 2022-01-16 23:00:00 UTC 93
2021-12-17 23:00:00 UTC 2022-01-16 23:00:00 UTC 99

我想用一个名为 duration 的新字段注释数据,其值类似于 hourdayweekmonth

【问题讨论】:

【参考方案1】:

编辑数据源时,可以添加新的“计算字段”。 我使用 DATETIME_DIFF 像这样注释持续时间:

CASE
    WHEN DATETIME_DIFF(end, start, HOUR) <= 1 THEN "Hour"
    WHEN DATETIME_DIFF(end, start, DAY) <= 1 THEN "Day"
    WHEN DATETIME_DIFF(end, start, DAY) <= 7 THEN "Week"
    ELSE "Month"
END

【讨论】:

以上是关于如何按特定日期范围(例如小时、日、月)对数据进行分组?的主要内容,如果未能解决你的问题,请参考以下文章

按日期范围选择数据并换行

如何按小时对 HKStatistics 进行分组?

SQL 查询 - 多个日期范围

固定日期范围之间的 MySQL 记录

python时间和日期处理

R速成指南-时间序列重采样