вызовы оконных функций не могут быть вложенными при попытке запустить функцию агрегирования - PullRequest
0 голосов
/ 25 мая 2020

Я хочу объединить эти журналы, и группировка должна работать при изменении mac_a, ip, mac_ c, но в postgresql я получаю сообщение об ошибке

вызовы оконных функций не могут быть вложенными

Postgresql выдает ошибку при попытке агрегирования журналов

Данные ниже являются частью журналов

введите здесь описание изображения

Это агрегатная функция, пытающаяся использовать

with t as (
    select s.*,
           lag(s.port_clients) over (order by s.timestamp, s.end_session_time)                               as port_prev,
           sum(case
                   when s.mac_tkd <> lag(s.mac_tkd) over (order by s.timestamp, s.end_session_time) or
                        s.ip_clients <> lag(s.ip_clients) over (order by s.timestamp, s.end_session_time) or
                        s.mac_client <> lag(s.mac_client) over (order by s.timestamp, s.end_session_time) or
                        s.port_clients <> lag(s.port_clients) over (order by s.timestamp, s.end_session_time)
                       then 1
                   else 0
               end)
           over (order by s.timestamp, s.end_session_time rows between unbounded preceding and current row ) as gr
    from log_view s
)
select gr,
       min(timestamp)        as date_start,
       max(end_session_time) as date_end,
       max(mac_tkd)          as mac_a,
       max(ip_clients)       as ip,
       max(mac_client)       as mac_c,
       max(port_clients)     as port
from t
group by gr
order by gr

...