43 lines
1.3 KiB
SQL
43 lines
1.3 KiB
SQL
CREATE MATERIALIZED VIEW IF NOT EXISTS mv_answers
|
|
ENGINE = MergeTree() ORDER BY event_time
|
|
POPULATE AS
|
|
SELECT ctxquizid AS quizid,
|
|
ctxquestionid AS questionid,
|
|
ctxsession AS session,
|
|
event_time
|
|
FROM default.statistics
|
|
WHERE (message IN ('InfoQuizOpen', 'InfoAnswer', 'InfoResult'))
|
|
AND (event_level = 'info')
|
|
LIMIT 1 BY ctxquestionid, ctxsession;
|
|
|
|
CREATE VIEW IF NOT EXISTS view_last_answers AS
|
|
SELECT last_quesion,
|
|
any(last_quiz) AS quiz,
|
|
argMax(session, length(questions)) AS long_session
|
|
FROM default.view_respondent_paths
|
|
GROUP BY last_quesion;
|
|
|
|
CREATE VIEW IF NOT EXISTS view_pipelines_signs AS
|
|
SELECT target_quiz,
|
|
questionid,
|
|
long_sess
|
|
FROM (
|
|
SELECT questionid,
|
|
any(quiz) AS target_quiz,
|
|
any(long_session) AS long_sess,
|
|
groupArray(last_quesion) AS footsteps
|
|
FROM default.view_last_answers
|
|
INNER JOIN default.mv_answers ON long_session = session
|
|
GROUP BY questionid
|
|
)
|
|
WHERE length(footsteps) = 1;
|
|
|
|
CREATE VIEW IF NOT EXISTS view_respondent_paths AS
|
|
SELECT session,
|
|
groupArray(questionid) AS questions,
|
|
anyLast(questionid) AS last_quesion,
|
|
anyLast(quizid) AS last_quiz
|
|
FROM default.mv_answers
|
|
GROUP BY session;
|
|
|