Разделите месяцы на 4 и получите среднее значение за день - PullRequest
0 голосов
/ 28 мая 2018

Это вывод запроса во временную таблицу, созданную в сложной хранимой процедуре в MySQL:

enter image description here

Теперь цель состоит в том, чтобысредняя продолжительность в день, как у нас здесь, но для каждой недели по месяцу

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

Как я могу это сделать?

Примечание: если это проще, я могу сделать это с помощью php, так как я буду использовать данные на этом языке.

1 Ответ

0 голосов
/ 28 мая 2018

У вас есть запрос, который группируется по дням, например:

select 
  the_date as day,
  sec_to_time(avg(timestampdiff(second, start_time, end_time))) as duration
from ...
group by the_date;

Вместо этого вам нужны дни 1-7, 8-14, 15-21, 22-й конец месяца.Используйте CASE WHEN для построения групп.

select 
  year(the_date) as year,
  month(the_date) as month,
  case 
    when day(the_date) <=  7 then '01-07'
    when day(the_date) <= 14 then '08-14'
    when day(the_date) <= 21 then '15-21'
    else                          '22-end'
  end as day_range,
  sec_to_time(avg(timestampdiff(second, start_time, end_time))) as duration
from ...
group by year, month, day_range
order by year, month, day_range;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...