MySQL выбрать только одну запись из аналогичных за день - PullRequest
0 голосов

У меня есть таблица с действиями пользователей. Один из них происходит каждый раз, когда пользователь открывает определенную страницу.

Структура таблицы: id, user_id, action_type, created_at ...

Мне нужно выбрать из этой таблицы все действия за день / неделю ... но без повторения подобного за один день. Например: пользователь посетил 10 страниц, но 5 из них совпали. Результат выбора должен содержать только уникальные страницы за день.

Можно ли обойтись только MySQL logi c? Или лучше мне обновить повторяющееся действие, если оно происходит в тот же день?

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Один подход использует select distinct:

select distinct user_id, action_type, date(created_at) created_date
from mytable

При необходимости вы также можете подсчитать, сколько раз каждое action_type было выполнено на user_id и дневной основе с агрегированием:

select user_id, action_type, date(created_at) created_date, count(*) cnt
from mytable
group by user_id, action_type, date(created_at)
1 голос
/ 13 июля 2020

Я предлагаю следующий код sql:

SELECT DISTINCT URL from table_name group by date;

Я предполагаю, что имя вашей таблицы table_name, у вас есть URL-адреса (страницы) в столбце с именем URL, и вы отслеживаете дата в столбце date;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...