From d62217cf39170358423c55889cae448219f64f9a Mon Sep 17 00:00:00 2001 From: Pavel Date: Fri, 14 Jun 2024 13:58:29 +0300 Subject: [PATCH] update mat view, now save only last answer for session --- repository/statistics/click_statistics.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/repository/statistics/click_statistics.go b/repository/statistics/click_statistics.go index cdad23f..d31df41 100644 --- a/repository/statistics/click_statistics.go +++ b/repository/statistics/click_statistics.go @@ -35,10 +35,15 @@ CREATE MATERIALIZED VIEW IF NOT EXISTS mv_last_answers_events ENGINE = MergeTree() ORDER BY (ctxsession, event_time) AS SELECT - event_time,ctxsession,ctxquizid,ctxquestionid,ctxidint,message,keyos,ctxuserip,ctxuserport,keydomain,keypath,ctxquiz,ctxreferrer -FROM statistics WHERE message IN ('InfoQuizOpen', 'InfoAnswer', 'InfoResult') - AND event_level = 'info' AND create_time = (SELECT max(create_time) FROM statistics AS inner_table - WHERE inner_table.ctxsession = statistics.ctxsession); + event_time, ctxsession, ctxquizid, ctxquestionid, ctxidint, message, keyos, + ctxuserip, ctxuserport, keydomain, keypath, ctxquiz, ctxreferrer +FROM (SELECT + event_time, ctxsession, ctxquizid, ctxquestionid, ctxidint, message, keyos, + ctxuserip, ctxuserport, keydomain, keypath, ctxquiz, ctxreferrer, + row_number() OVER (PARTITION BY ctxsession ORDER BY create_time DESC) as row_num + FROM statistics + WHERE message IN ('InfoQuizOpen', 'InfoAnswer', 'InfoResult') AND event_level = 'info') AS sorted +WHERE row_num = 1; ` _, err := s.conn.ExecContext(ctx, query) if err != nil {