Sql 按月列出的合同总数

Sql 按月列出的合同总数,sql,sql-server,Sql,Sql Server,我正试图按月找到总合同数。数据存储在列(开始日期)和列(结束日期)中,每个月有多行数据 SELECT e.CustomerID, e.AgentID, COUNT(*) engagementnumber FROM Engagements e GROUP BY EndDate 我第一次用 SELECT COUNT(*) engagementnumber, FROM Engagements, GROUP BY EndDate 我得到了一个计数,但它没有按月份分组。您可以取消日期分组并使用聚合:

我正试图按月找到总合同数。数据存储在列(开始日期)和列(结束日期)中,每个月有多行数据

SELECT e.CustomerID, e.AgentID,
COUNT(*) engagementnumber
FROM Engagements e
GROUP BY EndDate
我第一次用

SELECT COUNT(*) engagementnumber,
FROM Engagements,
GROUP BY EndDate

我得到了一个计数,但它没有按月份分组。

您可以取消日期分组并使用聚合:

select year(dte), month(dte),
       sum(inc) as change_in_month,
       sum(sum(inc)) over (order by min(dte) as active_in_month
from ((select startdate as dte, 1 as inc from Engagements) union all
      (select enddate, -1 as int from Engagements)
     ) t
group by year(dte), month(dte)
order by year(dte), month(dte);

你可以试试类似的东西

SELECT MONTH(enddate), COUNT(*) OVER (PARTITION BY MONTH(enddate)) engagementnumber FROM engagements

请提供样本数据和预期结果。客户和代理商按月签订的合同总数:开始日期:2020-09-01结束日期:2020-09-05,合同编号1,客户ID:,代理商ID您能解释一下dte和inc代表什么吗?@DakotaChittim。它们表示每个
日期
,inc表示帐户是开始计数还是结束计数。