首页 > 解决方案 > 在 SQL 中使用 Month(dateField) 统计每个月的记录

问题描述

我有一个包含 c650,000 条记录的大表。他们是拥有电子邮件地址的个人,其中一个字段是“dateOfApplication”。我被要求详细说明每个月有多少人注册。

我希望结果看起来像

Month     Year     Total 
1         2017     50763
2         2017     34725

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

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

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

标签: sqldatedatetimedatetime-formatsalesforce-marketing-cloud

解决方案


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

您可以使用GROUP BY

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

如果你想要yearwise month,那么还包括 year :

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

推荐阅读