在 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
明智 month
s 然后包括年份 :
SELECT YEAR([UG_Master].dateOfApplication), MONTH([UG_Master].dateOfApplication), COUNT(1)
FROM [UG_Master]
GROUP BY YEAR([UG_Master].dateOfApplication), MONTH([UG_Master].dateOfApplication);
我有一个很大的 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
明智 month
s 然后包括年份 :
SELECT YEAR([UG_Master].dateOfApplication), MONTH([UG_Master].dateOfApplication), COUNT(1)
FROM [UG_Master]
GROUP BY YEAR([UG_Master].dateOfApplication), MONTH([UG_Master].dateOfApplication);