使用 SQL 和日内数据计算移动平均线

问题描述 投票:0回答:0

我正在查询存储在 Hive 数据仓库中的表。

我想计算去年每只股票价格的 5 天滚动平均值。按“组”列分组。我面临的挑战是:

  1. 数据为日内
  2. 有数十亿行数据——计算时间很关键

sql 小提琴链接:text

到目前为止,我已经尝试过这样的事情:

SELECT t1.timestamp, t1.group, AVG(t1.price) OVER (PARTITION BY t1.group ORDER BY t1.timestamp
                   ROWS BETWEEN 29 PRECEDING AND CURRENT ROW)
FROM (select *
      FROM table1
      WHERE timestamp >= DATE_SUB(CURRENT_TIMESTAMP(), 365)
) t1

由于日内数据,我无法使用 ROWS BETWEEN。 RANGE BETWEEN 不适用于 HiveQL。我可以使用其他逻辑来进行高效查询吗?

谢谢!

sql hive moving-average
© www.soinside.com 2019 - 2024. All rights reserved.