PostgreSQL10 OLAP с использованием строки - PullRequest
0 голосов
/ 12 мая 2018

Почему неправильно использовать «строки 2 после» и «строки 2 перед» и «строки от 2 до 2»? И как я могу исправить "строки 2 следующие"? Спасибо за помощь

enter image description here

enter image description here

1 Ответ

0 голосов
/ 12 мая 2018

При использовании оконных рам всегда включайте оба конца рамки.

Рамка rows 2 following неоднозначна.Вы имеете в виду rows between current row and 2 following или rows between 2 following and unbounded following?У каждого из них есть проблемы.

Первое недопустимо, поскольку начало кадра должно появляться до его окончания:

Ограничения: frame_start не может быть UNBOUNDED FOLLOWING, frame_end не может быть UNBOUNDED PRECEDINGи выбор frame_end не может появиться раньше в списке выше, чем выбор frame_start.

Кроме того, когда включена только одна временная спецификация для кадра, она включается в качестве начала кадра.

Итак, Postgres интерпретирует 2 following как начало кадра.Но по умолчанию для конца используется текущая строка, поэтому она интерпретируется как rows between 2 following and current row.Следовательно, выдается сообщение об ошибке:

42P20: кадр, начинающийся со следующей строки, не может заканчиваться текущей строкой

...