ЗАПРОС за последние десять дней+другие запросы - MySQL
Формулировка задачи:
ПОМОГИТЕ осуществить вот такой запрос:
Запрос который будет выводить следующую информацию для каждого абонента за последние десять дней:
• число вызовов
• средняя продолжительность звонков
• максимальная длительность звонка
• суммарная длительность звонков
• общая стоимость вызовов
• средняя стоимость вызова
• средняя стоимость минуты разговора
SELECT * FROM Calls WHERE Call_start > NOW() - INTERVAL 10 DAY; за последние десять дней сделал
SELECT Calling_number, COUNT(Calling_number), AVG(Duration), MAX(Call_start),
SUM(Duration), SUM (Cost), AVG(Cost) FROM Calls GROUP BY Calling_number; Кроме минут тоже сделал
Мне нужно это все сделать в один запрос,и среднюю стоимость минуты разговора
Решение задачи: «ЗАПРОС за последние десять дней+другие запросы»
textual
Листинг программы
SELECT Calling_number, COUNT(Calling_number), AVG(Duration), MAX(Call_start), SUM(Duration), SUM(Cost), AVG(Cost), SUM(Cost)/SUM(Duration) as `средняя стоимость минуты разговора` FROM Calls WHERE Call_start > NOW() - INTERVAL 10 DAY GROUP BY Calling_number;
Объяснение кода листинга программы
В данном коде выполняется запрос к таблице Calls
с условием, что дата начала звонка (Call_start) больше текущей даты минус 10 дней. Затем производится группировка результатов по номеру звонка (Calling_number). Для каждого номера звонка вычисляются следующие значения:
- Количество звонков (COUNT(Calling_number))
- Средняя продолжительность звонка в секундах (AVG(Duration))
- Максимальная продолжительность звонка в секундах (MAX(Call_start))
- Общая продолжительность всех звонков в секундах (SUM(Duration))
- Общая стоимость всех звонков (SUM(Cost))
- Средняя стоимость всех звонков (AVG(Cost))
- Коэффициент средней стоимости минуты разговора (SUM(Cost)/SUM(Duration)) В итоге, в запросе получаем список из 7 элементов, который группируется по номеру звонка (Calling_number).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д