在 SQL 中使用 Month(dateField) 计算每个月的记录

Count records in each month using Month(dateField) in SQL

我有一个很大的 table 包含 c650,000 条记录。他们是拥有电子邮件地址的个人,字段之一是 'dateOfApplication'。我被要求提供每个月注册人数的明细。

我希望结果看起来像

Month     Year     Total 
1         2017     50763
2         2017     34725

并以这种格式制作了一个目标 table 来放入结果。我已经能够使用 Month(dateOfApplication) 来获取日期的月份组成部分

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

到 return 特定月份,但真的不知道如何为它找到的每个月份获取一行。

but don't really know how to get one row for each month it finds.

您可以使用 GROUP BY :

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

如果你想要 year 明智 months 然后包括年份 :

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