2014-02-07 6 views
-1

У меня есть таблица вроде этого:12 месяц 13 неделя скользящее среднее

DROP TABLE IF EXISTS my_table; 

CREATE TABLE my_table 
(date  DATE NOT NULL PRIMARY KEY 
,incoming INT NOT NULL 
,closed INT NOT NULL 
,outstanding INT NOT NULL 
); 

INSERT INTO my_table VALUES 
('2013-02-01' ,1448  ,1309  ,14914), 
('2013-03-01' ,1458  ,1492  ,14880), 
('2013-04-01' ,1392  ,1439  ,14833), 
('2013-05-01' ,1367  ,1273  ,14927), 
('2013-06-01' ,1331  ,1240  ,15018), 
('2013-07-01' ,1410  ,1336  ,15092), 
('2013-08-01' ,1284  ,1418  ,14958), 
('2013-09-01' ,1210  ,1286  ,14882), 
('2013-10-01' ,1158  ,1067  ,14973), 
('2013-11-01' ,989  ,1018  ,14944), 
('2013-12-01' ,791  ,932  ,14803), 
('2014-01-01' ,637  ,956  ,14484); 

Как рассчитать 12 месяц 13 недели работает усредненно текущую дату, используя MySQL запрос?

Я хочу, чтобы результат, как этот

quarter incoming closed  outstanding 
------------------------------------- 
Q1  1416  1425   1460 
Q2  1308  1345   1530 
Q3   751   950   1412 
Q4   825   945   1420 

заранее спасибо

+0

Вы что-то пробовали? –

+0

Учитывая ваши текущие данные, какими должны быть ваши результаты? Что означает «12-месячная 13-неделя» - среднее значение за этот общий период времени, хотите ли вы, чтобы данные составляли период 13 недель, усредненный в движущемся 12-месячном окне, или что? Когда начинается неделя? Попытки, которые вы предприняли для решения этой проблемы, помогут нам выяснить, что вам нужно. Данные, которые вы указали, по всей видимости, агрегируются в зависимости от месяца. –

+0

Результат должен быть средним из входящих, выдающихся, закрытых, которые будут разделены на 4 outers.I нужны данные из периода 13 недель, усредненных в движущихся 12-месячный window.week начнет формироваться каждый понедельник. – user3282663

ответ

0

Спасибо за все ваши предложения. Я узнаю ответ. Может быть, он полезен для других.

выберите «Q1» quter, AVG (входящий), AVG (выдающийся), AVG (закрыт) из my_table, где дата МЕЖДУ DATE_ADD (CURDATE(), INTERVAL -12 MONTH) И DATE_ADD (CURDATE(), INTERVAL -9 MONTH) UNION выберите «Q2», AVG (входящий), AVG (выдающийся), AVG (закрыт) из my_table , где дата МЕЖДУ DATE_ADD (CURDATE(), INTERVAL -9 MONTH) И DATE_ADD (CURDATE(), INTERVAL - 6 МЕСЯЦ) UNION выберите «Q3», AVG (входящий), AVG (выдающийся), AVG (закрыт) из my_table , где дата МЕЖДУ DATE_ADD (CURDATE(), INTERVAL -6 MONTH) И DATE_ADD (CURDATE(), INTERVAL -3 МЕСЯЦА) UNION выберите «Q4», AVG (входящий), AVG (выдающийся), AVG (закрыт) от my_table , где дата МЕЖДУ DATE_SUB (CURDATE(), INTERVAL 3 MONTH) И CURDATE()

Смежные вопросы