У меня есть следующая таблица:Как найти дубликаты между двумя переменными датами
id | whenCreated | callingNumber |
---|--------------------------------|
1 | 1-1-2016 9:00 | 0612345678 |
2 | 1-1-2016 9:10 | 0623456789 |
3 | 1-1-2016 9:55 | 0612345678 |
4 | 1-1-2016 10:15 | 0623456789 |
5 | 1-1-2016 11:00 | 0623456789 |
etc.
Datatypes:
id = int (AI)
whenCreated = datetime
callingNumber = varchar
Я хочу сделать анализ о том, сколько людей перезвонит в течение определенного периода после их предыдущего вызова (для примера, давайте скажем, 1 час). Для этого я хочу узнать, сколько раз кто-то звонил раньше в предыдущий период. В этом примере результат должен быть примерно таким:
id | whenCreated | callingNumber | prevCalls |
---|--------------------------------|-----------|
1 | 1-1-2016 9:00 | 0612345678 | 0 | < 0, because no previous calls
2 | 1-1-2016 9:10 | 0623456789 | 0 | < 0, because no previous calls
3 | 1-1-2016 9:55 | 0612345678 | 1 | < 1, because one call from this number in the last hour
4 | 1-1-2016 10:15 | 0623456789 | 0 | < 0, there was one earlier call from this number, but it was more than an hour ago
5 | 1-1-2016 11:00 | 0623456789 | 1 | < 1, because one call from this number in the last hour
etc.
Есть ли способ, которым я могу сделать это с помощью одного запроса в MySQL? Или мне нужно запустить скрипт для этого? (я знаю, как это сделать для каждой строки отдельно, я просто не могу найти способ сделать это с одним запросом).
Какой тип столбца 'whenCreated'? – michaJlS
@michaJlS Я добавил типы данных к моему вопросу, но чтобы ответить: это поле даты, поэтому я могу использовать date_sub и т. Д. – wjhulzebosch