如何在 Presto SQL 中按 X 分钟增量分组?
How to group by X minute increments in Presto SQL?
我的数据集如下所示:
Name, Timestamp, Period, Value
Apple, 2012-03-22 00:00:00.000, 10, 34
Apple, 2012-03-22 00:06:00.000, 10, 23
Orange, 2012-03-22 00:00:00.000, 5, 3
Orange, 2012-03-22 00:08:00.000, 5, 45
其中列周期是应该按每小时分组的 N 分钟数。因此,例如 Apple 应该按 1:10、1:20、1:30 进行分组,例如 Orange 是 1:05、1:10 等。我还想对每个增量的值列进行平均。
假设
Period
是整数和 60 的约数
- 对于两行,如果
Name
相同,则Period
相同
应该做到以下几点
SELECT
name,
date_trunc('minute', timestamp_column)
- interval '1' minute * (minute(timestamp_column) % period)
AS timestamp_rounded,
avg(value)
FROM ...
GROUP BY 1, 2
我的数据集如下所示:
Name, Timestamp, Period, Value
Apple, 2012-03-22 00:00:00.000, 10, 34
Apple, 2012-03-22 00:06:00.000, 10, 23
Orange, 2012-03-22 00:00:00.000, 5, 3
Orange, 2012-03-22 00:08:00.000, 5, 45
其中列周期是应该按每小时分组的 N 分钟数。因此,例如 Apple 应该按 1:10、1:20、1:30 进行分组,例如 Orange 是 1:05、1:10 等。我还想对每个增量的值列进行平均。
假设
Period
是整数和 60 的约数- 对于两行,如果
Name
相同,则Period
相同
应该做到以下几点
SELECT
name,
date_trunc('minute', timestamp_column)
- interval '1' minute * (minute(timestamp_column) % period)
AS timestamp_rounded,
avg(value)
FROM ...
GROUP BY 1, 2