Как узнать, связывался ли клиент с трижды в течение двух дней? - PullRequest
0 голосов
/ 01 апреля 2019

Мне нужно узнать список мобильных телефонов, с которыми трижды связывались в течение двух дней, используя такие столбцы, как mobile и call_time?

Насколько я понимаю, я пытался использовать приведенный ниже код, используя self- присоединение будет совпадать с похожими номерами мобильных телефонов, и мне нужно выяснить, повторяется ли номер мобильного телефона трижды или более, но мне также необходимо выяснить разницу между максимальным и минимальным временем звонка для конкретного клиента, чтобы узнать, не превышает ли оно двух дней. Дайте мне знать, как реализовать эту логику:

select c1.mobile
from call_Records c1, call_Records c2
where c1.mobile=c2.mobile and max(call_time)-min(call_time)<=2

Я бы хотел, чтобы данные были такими:

Customer Mobile

XXXXX0001

XXXXX0002

XXXXX0003

1 Ответ

0 голосов
/ 01 апреля 2019

Этот запрос должен дать вам результаты, которые вы хотите.Он выполняет самостоятельное соединение на основе того же мобильного телефона, который вызывается в течение 2 дней с момента первоначального вызова, а затем подсчитывает количество строк, возвращая только те, у которых было 3 или более вызовов в течение 2 дней.

SELECT c1.mobile, c1.call_time
FROM call_Records c1
JOIN call_Records c2 ON c2.mobile = c1.mobile
WHERE c2.call_time >= c1.call_time - INTERVAL 2 DAY AND c2.call_time < c1.call_time
GROUP BY c1.mobile, c1.call_time
HAVING COUNT(*) >= 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...