Количество звонивших в нерабочее время - MySQL

Узнай цену своей работы

Формулировка задачи:

Прошу вашей помощи, мне необходимо чтобы запрос выводил вот такие данные:
30.04.2016  2
02.05.2016  5
03.05.2016 12
04.05.2016  7
05.05.2016  23
06.05.2016  4
Первый столбец - дата, второй - количество звонков в нерабочее время. Мой запрос выглядит так:
SELECT t1.calldate, t2.calldate FROM(SELECT DATE(calldate) AS calldate
FROM cdr WHERE calldate > LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
AND calldate < DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY) AND LENGTH(src)>4
AND recordingfile LIKE 'in%' GROUP BY 1) AS t1 LEFT JOIN(SELECT calldate FROM cdr WHERE  disposition='ANSWERED' AND calldate BETWEEN '2016-05-05 09:00:00'
 AND '2016-05-05 18:00:00'  GROUP BY uniqueid) AS t2
Он выводит такой результат:
30.04.2016  (NULL)
02.05.2016  (NULL)
03.05.2016  (NULL)
04.05.2016  (NULL)
05.05.2016  (NULL)
06.05.2016  (NULL)
Очень надеюсь на вашу помощь! Всем + в карму

Решение задачи: «Количество звонивших в нерабочее время»

textual
Листинг программы
select date(calldate), count(distinct uniqueid) from cdr where time(calldate) between '09:00:00' AND '18:00:00' group by 1;

Объяснение кода листинга программы

В данном коде производится выборка данных из таблицы cdr, которая содержит информацию о звонках.

  1. date(calldate) - функция, которая извлекает дату из поля calldate.
  2. count(distinct uniqueid) - функция, которая подсчитывает количество уникальных значений в поле uniqueid.
  3. where time(calldate) between '09:00:00' AND '18:00:00' - условие, которое ограничивает выборку только теми записями, у которых время звонка находится в диапазоне от 09:00:00 до 18:00:00.
  4. group by 1 - группировка результатов по полю calldate (дате звонка). Таким образом, данный запрос выбирает количество уникальных звонков (звонивших) в нерабочее время (с 09:00:00 до 18:00:00) на каждый день.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы