如何计算一段时间内每月的记录数

Dam*_*ien 2 sql sql-server sql-server-2005

有没有办法在指定的时间内运行查询,比如最近 5 个月,并且能够返回每个月创建的记录数?这是我的桌子的样子:

SELECT rID, dateOn FROM claims
Run Code Online (Sandbox Code Playgroud)

Mik*_*oud 5

SELECT COUNT(rID) AS ClaimsPerMonth,
    MONTH(dateOn) AS inMonth,
    YEAR(dateOn) AS inYear FROM claims
WHERE dateOn >= DATEADD(month, -5, GETDATE())
GROUP BY MONTH(dateOn), YEAR(dateOn)
ORDER BY inYear, inMonth
Run Code Online (Sandbox Code Playgroud)

在这个查询中,WHERE dateOn >= DATEADD(month, -5, GETDATE())确保它是过去 5 个月,GROUP BY MONTH(dateOn)然后允许它每月计数。

为了安抚社区,这里有一个SQL Fiddle来证明这一点。

  • 这就是为什么我们需要前五分钟内的修订历史。感谢您将其添加到您的“SELECT”列表中。不幸的是,除非编辑答案,否则我的反对票将被锁定。 (3认同)
  • @FreshPrinceOfSO 什么,你的意思是[像这样](http://meta.stackexchange.com/questions/138017/make-first-draft-of-a-new-answer-part-of-the-permanent-revision-history )?:-) (3认同)