【问题标题】:Count records in each month using Month(dateField) in SQL在 SQL 中使用 Month(dateField) 统计每个月的记录
【发布时间】:2019-03-22 05:35:56
【问题描述】:

我有一个包含 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

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

【问题讨论】:

  • 提示:GROUP BY.
  • 您使用的是哪个 dbms? (该查询是特定于产品的。)

标签: sql date datetime datetime-format salesforce-marketing-cloud


【解决方案1】:

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

你可以使用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);

【讨论】:

  • 如果他们有前几年的记录怎么办,在我看来你也需要按年份列对吗?
  • 太棒了 - 工作完美,谢谢。我已经忘记了 Group By,但直到现在我还没有走上正确的路线!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多