Group by и оконная функция. SQL

Подскажите, разве при использовании оконной функции count не является агрегирующей функцией? Почему он требует group by? Это ломает мне весь код

Код такой:

with years_1 as
(select years = 2019 as year2019
      , years = 2020 as year2020
      ,ord_an
from   (select extract (year from ord_datetime) as years
               , ord_an
        from orders) t1
)
select an_id
       , count(ord_id) over (partition by an_id order by year2019) as year2019
from analysis a 
     join orders o
         on a.an_id = o.ord_an
         join years_1 y 
             on o.ord_an = y.ord_an
group by an_id
order by an_id

Выдается ошибка:

column "o.ord_id" must appear in the GROUP BY clause or be used in an aggregate function
LINE 12:        , count(ord_id) over (order by year2019) as yesr2019

Ответы (1 шт):

Автор решения: Аня Евстифейкина

Ошибка возникает потому, что в одном запросе вы используете и оконную функцию, и группировку group by.

По очередности выполнения оконная функция считается после group by. Не получится агрегировать то, что еще не посчитано, вот и возникает ошибка.

Уберите group by.

→ Ссылка