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

时间:2019-05-15 15:43:28

标签: 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

列时间段是N分钟数,应按每小时进行分组。因此,例如,Apple应该按1:10、1:20、1:30分组,例如Orange为1:05、1:10等。我还想对这些增量的每一个取值列的平均值。

1 个答案:

答案 0 :(得分:1)

假设...

  • 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