Есть таблица, со следующей структурой
timestamp
user_id
event
Есть два важных event
appInstall
sessionstart
Мне нужно посчитать количество начатых сессий в день установки приложений
Установка - это либо
Select
user_id,
toDate(min(timestamp)) as installday,
FROM
table
GROUP BY user_id
либо
SELECT
user_id,
toDate(timestamp)
From
table
where event="install"
В идеале тут бы подошел join , но так как это clickhouse тут это решение не очень хорошо впишется. Также есть идея пронумеровать все дни у игроков и сделать просто запрос
select
user_id,
count(*)
from
table
where live_day=1 and event="session_start"
group by user_id
Хорошее ли это решение, как лучше нумеровать дни в CH ? в Mysql для этого юзал переменные
Значения колонки timestamp преобразовать в date и, затем, посчитать события установки:
SELECT
DATE(`timestamp`),
user_id,
COUNT(*)
FROM `table`
WHERE `event` = 'install'
GROUP BY user_id, DATE(`timestamp`);
Демо на DB Fiddle.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости