2025-05-10 20:41:38 +00:00
|
|
|
|
DROP MATERIALIZED VIEW if exists mv_last_answers_events;
|
2024-07-02 08:18:00 +00:00
|
|
|
|
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;
|
|
|
|
|
|
2025-05-10 20:41:38 +00:00
|
|
|
|
CREATE MATERIALIZED VIEW IF NOT EXISTS mv_quiz_open
|
|
|
|
|
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 = 'InfoContactForm'AND event_level = 'info'
|
|
|
|
|
LIMIT 1 BY ctxquestionid, ctxsession;
|
|
|
|
|
|
2024-07-02 08:18:00 +00:00
|
|
|
|
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;
|
|
|
|
|
|
2025-05-10 20:41:38 +00:00
|
|
|
|
-- тут хранится информация по оплатах пользователей именно успешных, успешность показывает keysuccess = 1
|
|
|
|
|
CREATE MATERIALIZED VIEW IF NOT EXISTS ltv_view
|
|
|
|
|
ENGINE = MergeTree()
|
|
|
|
|
ORDER BY (ctxuserid)
|
|
|
|
|
POPULATE AS
|
|
|
|
|
SELECT create_time, -- время создания
|
|
|
|
|
ctxuserid, -- id пользователя
|
|
|
|
|
ctxaccountid, -- id oid в монго
|
|
|
|
|
ctxprice, -- цена корзины после подсчета скидки
|
|
|
|
|
ctxrowprice -- цена корзины до скидки
|
|
|
|
|
FROM default.statistics
|
|
|
|
|
WHERE keysuccess = 1 and message = 'InfoPayCart'AND event_level = 'info';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE MATERIALIZED VIEW IF NOT EXISTS user_regs_view
|
|
|
|
|
ENGINE = MergeTree()
|
|
|
|
|
ORDER BY (ctxuserid)
|
|
|
|
|
POPULATE AS
|
|
|
|
|
SELECT create_time, -- время создания
|
|
|
|
|
ctxuserid, -- id пользователя
|
|
|
|
|
ctxaccountid, -- oid акканута в монго
|
|
|
|
|
keyfromsource, -- название сервиса откуда пришел, интересно пока что только quiz
|
|
|
|
|
keyfromid, -- quiz id откуда с которого пришел пользователь
|
|
|
|
|
keyfrompartner, -- id пользователя который является партнером (тот кто привел)
|
|
|
|
|
ctxemail, -- почта пользоователя
|
|
|
|
|
ctxlogin -- логин пользователя
|
|
|
|
|
FROM default.statistics
|
|
|
|
|
WHERE message = 'InfoCreateAccount'AND event_level = 'info';
|
|
|
|
|
|
|
|
|
|
CREATE MATERIALIZED VIEW IF NOT EXISTS promo_view
|
|
|
|
|
ENGINE = MergeTree()
|
|
|
|
|
ORDER BY (ctxuserid)
|
|
|
|
|
POPULATE AS
|
|
|
|
|
SELECT create_time, --время создания
|
|
|
|
|
ctxid, -- id промо в монге
|
|
|
|
|
ctxuserid, -- id пользователя который активировал
|
|
|
|
|
ctxcode, -- кодовое слово (заполняется если по нему была активация)
|
|
|
|
|
ctxpromocodeid -- фастлинк (заполняется если по нему была активация)
|
|
|
|
|
FROM default.statistics
|
|
|
|
|
WHERE message IN ( 'InfoPromocodeActivated', 'InfoFastlinkActivated') AND event_level = 'info';
|