【发布时间】:2020-12-18 11:00:56
【问题描述】:
Snowflake 允许我们根据当前值和之前的两个值计算滚动平均值。时间序列数据有缺口怎么办?
例如在以下示例中,我想计算三天移动平均线。对于 7/30,以下查询在计算 7/30 的 3 天移动平均线时将使用 7/25 数据。有没有办法避免这种情况?
CREATE OR REPLACE TABLE STOCK_PRICE(TRADE_DATE DATE, SYMBOL STRING, CLOSE_PRICE float);
INSERT INTO STOCK_PRICE VALUES
('2020-07-25', 'AAPL', '800.0'),
('2020-07-25', 'AXP', '90.0'),
('2020-07-30', 'AAPL', '1010.0'),
('2020-07-30', 'AXP', '112.0'),
('2020-07-31', 'AAPL', '1025.0'),
('2020-07-31', 'AXP', '105.0'),
('2020-08-03', 'AAPL', '978.0'),
('2020-08-03', 'AXP', '110.0'),
('2020-08-04', 'AAPL', '970.0'),
('2020-08-04', 'AXP', '115.0'),
('2020-08-05', 'AAPL', '990.0'),
('2020-08-05', 'AXP', '120.0'),
('2020-08-06', 'AAPL', '995.0'),
('2020-08-06', 'AXP', '125.0'),
('2020-08-07', 'AAPL', '990.0'),
('2020-08-07', 'AXP', '122.0'),
('2020-08-10', 'AAPL', '998.0'),
('2020-08-10', 'AXP', '124.0')
SELECT TRADE_DATE, SYMBOL, CLOSE_PRICE,
AVG(CLOSE_PRICE) OVER (PARTITION BY SYMBOL ORDER BY TRADE_DATE ROWS between 2 PRECEDING AND CURRENT ROW) AS MV_AVG_5DAY
FROM STOCK_PRICE
【问题讨论】:
标签: windows snowflake-cloud-data-platform rolling-computation