diff --git a/repository/statistics/click_statistics.go b/repository/statistics/click_statistics.go index e2b0dcf..7bd3451 100644 --- a/repository/statistics/click_statistics.go +++ b/repository/statistics/click_statistics.go @@ -37,15 +37,10 @@ CREATE MATERIALIZED VIEW IF NOT EXISTS mv_last_answers_events ENGINE = MergeTree() ORDER BY (ctxsession, event_time) POPULATE AS SELECT - 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 event_time DESC) as row_num - FROM statistics - WHERE message IN ('InfoQuizOpen', 'InfoAnswer', 'InfoResult') AND event_level = 'info') AS sorted -WHERE row_num = 1; + event_time, ctxsession, ctxquizid, ctxquestionid, ctxidint, message,ctxquiz +FROM statistics +WHERE message IN ('InfoQuizOpen', 'InfoAnswer', 'InfoResult') AND event_level = 'info'; +; ` _, err := s.conn.ExecContext(ctx, query) if err != nil { @@ -78,7 +73,7 @@ func (s *StatisticClick) getFunnel(ctx context.Context, quizID int64, from uint6 query := ` SELECT DISTINCT last_que, reversed FROM ( SELECT groupUniqArray(ctxquestionid) AS reversed, arraySlice(arrayReverse(groupArray(ctxquestionid)), 1, 1)[1] AS last_que - FROM statistics WHERE ctxquizid = ? AND event_time BETWEEN ? AND ? GROUP BY ctxsession ) AS sub; + FROM mv_last_answers_events WHERE ctxquizid = ? AND event_time BETWEEN ? AND ? GROUP BY ctxsession ) AS sub; ` rows, err := s.conn.QueryContext(ctx, query, quizID, from, to)