如何在 Presto SQL 中按 X 分钟增量分组?

TES*_*ER1 6 sql presto

我有如下所示的数据集:

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
Run Code Online (Sandbox Code Playgroud)

如果列周期是 N 分钟数,则应按每小时进行分组。因此,例如 Apple 应该在 1:10、1:20、1:30 ex 分组,其中 Orange 是 1:05、1:10 等。我还想对每个增量的 Value 列求平均值。

Pio*_*sen 12

假设

  • 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
Run Code Online (Sandbox Code Playgroud)