powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Прощу помощи в решении задачи
2 сообщений из 2, страница 1 из 1
Прощу помощи в решении задачи
    #39984781
AnnaBari
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть таблица вида:
Код: sql
1.
2.
3.
CREATE TABLE table_R (user_id INT, 
                                   event_timestamp TIMESTAMP, 
                                   event_name VARCHAR(45))



Нужно привести к виду:
"Год и месяц появления пользователя в системе",
"Количество новых пользователей (пришедших в этом месяце)",
"Количество пользователей, вернувшихся на второй календарный месяц после регистрации",
"Вероятность возврата"
Четвертая колонка это отношение третьей ко второй.
Вот что получилось у меня:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT DATE_FORMAT(A.event_timestamp,  '%Y-%m') AS "Год и месяц появления пользователя в системе", 
	   count(distinct A.user_id) AS "Количество новых пользователей (пришедших в этом месяце)", 
	   count(distinct B.user_id) AS "Количество пользователей, вернувшихся на второй календарный месяц после регистрации",
       round((count(distinct B.user_id))/(count(distinct A.user_id))*100, 0) AS "Вероятность возврата" 
FROM table_R AS A 
LEFT JOIN table_R AS B
       ON A.user_id = B.user_id AND DATE_FORMAT(DATE_ADD(A.event_timestamp, INTERVAL 1 month), '%Y-%m') = DATE_FORMAT(B.event_timestamp,  '%Y-%m')
GROUP BY 1
ORDER BY 1;


Но тут есть проблема. Не учитывается уникальность user_id.
Например пользователь с номером 1 пришел в 1,2,3 месяцах, то будет учтена регистрация в 1-ом месяце и возврат во 2-ом, а так же регистрация во 2-ом и возврат в 3-ем. Что естественно не удовлетворяет условию.
Подскажите, как исправить данный момент?
...
Рейтинг: 0 / 0
Прощу помощи в решении задачи
    #39984809
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnnaBari
Что естественно не удовлетворяет условию.
Это ещё почему? Во втором месяце имеется приход. Он - приход (регистрация) по отношению к себе, но возврат по отношению к 1 месяцу.

Это - ЛОГИЧНО.

А если ориентироваться на "не удовлетворяет условию", то при запросе за период с 1 месяца во втором возврата не будет, а за период со второго месяца - будет. И вот это и есть бредятина.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Прощу помощи в решении задачи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]