посмотерть , какие события совершал между двумя временными рамками ( верхняя граница - ключевое событие для пользователя)
Проблема в том : для всех событий кроме event1 с параметрами cond1&cond2 данное условие будет возвращать 1970г. Так же я не могу взять max значение. Можете подсказать пжл , как написать это правильно ?
select user_id, action_name
from project
where action_time BETWEEN toDate('2018-10-10 00:00:00') AND if((action_name='event1' and JSONExtractString(action_value,'cond1') in ('smth') and JSONExtractString(action_value,'cond2') in ('smth') ), action_time, toDate('1970-10-10 00:00:00'))
order by action_name
limit 500;
всё ещё актуально
cумбурно задаешь вопрос потому никто и не отвечает формулируй грамотнее что нужно получить? множество юзеров которые сделали в action_name=event1 какие то действия и сделали это позже чем 2018-10-10 ? или что?
Виноват! Нужно получить множество юзеров которые сделали action_name=event1 2018-10-10 и которые не пренадлежат к множествую юзеров сделавших это действие 2018-10-09
``` SELECT user_id FROM ( SELECT user_id, groupArray(toDate(action_time)) AS d FROM project WHERE toDate(action_time) IN ( toDate('2018-10-10'), toDate('2018-10-09')) AND action_name='event1' AND JSONExtractString(action_value,'cond1') in ('smth') AND JSONExtractString(action_value,'cond2') in ('smth') GROUP BY user_id ) WHERE d = [toDate('2020-10-10')] ``` как то так
Нужно получить все события пользователя Которые он совершил в промежутке времени Time >= action_time1 Time <= action_time2
SELECT user_id, action_name FROM table WHERE action_time >= action_time1 AND action_time <= action_time2
Обсуждают сегодня