Выполнить запрос без join

98
14 сентября 2021, 11:40

Есть таблица, со следующей структурой

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 для этого юзал переменные

Answer 1

Значения колонки timestamp преобразовать в date и, затем, посчитать события установки:

SELECT
  DATE(`timestamp`),
  user_id,
  COUNT(*)
FROM `table`
WHERE `event` = 'install'
GROUP BY user_id, DATE(`timestamp`);

Демо на DB Fiddle.

READ ALSO
Как выбрать товары с ценами с помощью WP_Query с ценами

Как выбрать товары с ценами с помощью WP_Query с ценами

Как можно выбрать товары вместе с ценами, и нужно потом вернуть результат выборки по ajax допустим в массиве, для дальнейшей обработки товаров...

166
Помогите найти ошибку в коде php

Помогите найти ошибку в коде php

Взялся помочь человеку с сайтом на Bitrix, начал редактировать файл шаблона и испортил код, сейчас сайт не открывается с ошибкой "[ParseError] syntax...

91
из двух масивов дат в один php

из двух масивов дат в один php

у меня есть два массива с датами

89
shell_exec(). Как обработать вывод?

shell_exec(). Как обработать вывод?

Получаю ответ от shell_exec("screen -list"):

93