Добавление результатов функции в один и тот же запрос sql - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь представить, как долго люди были подключены к VPN в течение определенного времени. Прямо сейчас я могу спросить, как долго длится каждый сеанс, но хочу добавить их для каждого пользователя.

Как я могу использовать функцию SUM для добавления результатов TO_CHAR ((duration || ' second ') :: interval,' HH24: MI: SS ') AS connection_duration, , чтобы показать общее количество времени, в течение которого каждый пользователь был подключен?

SELECT user AS vpn_user, remip AS peerip, duration AS vpn_dur, TO_CHAR (from_itime ("itime" - duration), 'YYYY-MM-DD') как начальная дата, TO_CHAR (from_itime ("itime" - duration), 'HH24: MI' ) в качестве начального времени, TO_CHAR ((duration || 'секунда') :: интервал, 'HH24: MI: SS') AS total_duration, TO_CHAR (from_itime ("itime"), "YYYY-MM-DD") в качестве конечной даты , TO_CHAR (from_itime ("itime"), 'HH24: MI') как end_time, tunneltype AS vpn_type

FROM $ log

WHERE $ filter AND subtype = 'vpn' И tunneltype IN ('ssl-tunnel') И action = 'tunnel-down' И COALESCE (NULLIFNA (user), IPSTR (remip)) НЕ НУЛЬ, И tunnelid НЕ НУЛЬ

GROUP BY vpn_user, peerip, vpn_dur, start_date, start_time, end_date, end_time, vpn_type ORDER BY start_date, vpn_user AS C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...