Записи подсчета SQL для каждого месяца за последние 6 месяцев - PullRequest
0 голосов
/ 22 марта 2019

У меня возникла проблема при попытке подсчета записей, которые были созданы за месяц за последние 6 месяцев.
Таблица выглядит следующим образом:

 A       B            C               D
Year    Month    Startingdate     Identifier   
 ----------------------------------------- 
2019     3        2019-03-12      OAM_1903121  
2019     2        2019-03-21      OAM_1902211  

И результат должен выглядеть следующим образом:

 A       B              C               
Year    Month    Amount of orders  
--------------------------------- 
2019     3             26  
2019     2             34  

Это то, что я имею до сих пор, но это не дает мне надлежащих результатов:

SELECT year, month, COUNT(Startingdate) as Amount  
FROM table  
WHERE Startingdate > ((TRUNC(add_months(sysdate,-3) , 'MM'))-1)  
GROUP BY year, month

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

Попробуйте:

ВЫБЕРИТЕ ГОД (начальная дата) КАК [Год], МЕСЯЦ (Начальная дата) КАК [Месяц], СЧЕТ (*) КАК Сумма
ОТ таблицы
ГДЕ Начальная дата> ДАТА ДАТ ((MONTH, -6, GETDATE ()) ГРУППА ПО ГОДУ (начальная дата), MONTH (начальная дата) ПОРЯДОК ГОДА (начальная дата), MONTH (начальная дата) DESC

0 голосов
/ 22 марта 2019

Я думаю, что ваша проблема заключается в фильтрации.Если это так, это должно обрабатывать последние шесть полных месяцев:

SELECT year, month, COUNT(*) as num_orders  
FROM table  
WHERE Startingdate >= TRUNC(add_months(sysdate, -6) , 'MM')  
GROUP BY year, month;
0 голосов
/ 22 марта 2019

Я не проверял, но он должен работать:

select year, month, count(Stringdate) as Amount_of_order
from table
where Stringdate between add_months(sysdate, -6) and sysdate
group by year, month;

Дайте мне знать.

...