Как получить скользящее среднее из n строк в разделе? - PullRequest
0 голосов
/ 02 ноября 2019

Я посмотрел на MySQL вычислил скользящее среднее из N строк , и это 80% ответа, но я не заставляю его работать.

Так что, если я возьму этоdata

CREATE TABLE some_data (date date, symbol text, close integer);

INSERT INTO some_data (date, symbol, close) VALUES 
('2018-04-02', 'IWM', '148.13'),
('2018-04-03', 'QQQ', '155.51'),
('2018-04-04', 'SPY', '257.47'),
('2018-04-05', 'IWM', '150.25'),
('2018-04-06', 'QQQ', '157.26'),
('2018-04-07', 'SPY', '260.77'),
('2018-04-08', 'IWM', '152.16'),
('2018-04-09', 'QQQ', '159.74'),
('2018-04-10', 'SPY', '263.56'),
('2018-04-11', 'IWM', '153.42'),
('2018-04-12', 'QQQ', '160.65'),
('2018-04-13', 'SPY', '265.64'),
('2018-04-14', 'IWM', '150.36'),
('2018-04-15', 'QQQ', '156.63'),
('2018-04-16', 'SPY', '259.72'),
('2018-04-17', 'IWM', '150.54'),
('2018-04-18', 'QQQ', '157.73'),
('2018-04-19', 'SPY', '261'),
('2018-04-20', 'IWM', '153.38'),
('2018-04-21', 'QQQ', '161.21'),
('2018-04-22', 'SPY', '265.15'),
('2018-04-23', 'IWM', '153.71'),
('2018-04-24', 'QQQ', '160.28'),
('2018-04-25', 'SPY', '263.76'),
('2018-04-26', 'IWM', '154.76'),
('2018-04-27', 'QQQ', '162.21'),
('2018-04-28', 'SPY', '265.93'),
('2018-04-29', 'IWM', '153.95'),
('2018-04-30', 'QQQ', '161.37');

Я пытаюсь

WITH avgs AS (
    SELECT symbol, date, close
        avg(close) OVER w AS week_avg,
        count(close) OVER w AS num_days
    FROM stockprice
    WINDOW w AS (
        PARTITION BY symbol 
        ORDER BY date 
        ROWS BETWEEN 6 PRECEDING AND CURRENT ROW))
SELECT symbol, date, close, week_avg
FROM avgs
WHERE num_days=7

Но я получаю ответ, что в моем SQL есть ошибка. Я не вижу этогоПожалуйста, помогите

...