Подсчет записей за каждый месяц с использованием Month (dateField) в SQL - PullRequest
0 голосов
/ 17 октября 2018

У меня есть большая таблица, содержащая 60000 записей.Это люди с адресами электронной почты, и одним из полей является «dateOfApplication».Меня попросили указать количество людей, подписавшихся за каждый месяц.

Я бы хотел, чтобы результаты выглядели примерно так:

Month     Year     Total 
1         2017     50763
2         2017     34725

И я составил целевую таблицу в этомформат для ввода результатов. Я смог использовать Месяц (dateOfApplication), чтобы получить компонент месяца даты, используя

SELECT DISTINCT
(SELECT COUNT(1) FROM [UG_Master]
WHERE MONTH([UG_Master].dateOfApplication) = '6') as Total

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

1 Ответ

0 голосов
/ 17 октября 2018

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

Вы можете использовать GROUP BY:

SELECT MONTH([UG_Master].dateOfApplication), COUNT(1) 
FROM [UG_Master]
GROUP BY MONTH([UG_Master].dateOfApplication);

Если вы хотите year мудрый month с, то укажите год также:

SELECT YEAR([UG_Master].dateOfApplication), MONTH([UG_Master].dateOfApplication), COUNT(1) 
FROM [UG_Master]
GROUP BY YEAR([UG_Master].dateOfApplication), MONTH([UG_Master].dateOfApplication);
...