在聚合SUM()内计数

时间:2013-03-18 15:39:09

标签: sql sql-server-2008 count sum sql-function

我有一个1000行的表。存在的列是ID,DBID,TalkTime。

我在做:

SELECT DBID, SUM(TalkTime)
FROM Incoming_Calls
GROUP BY DBID

这会缩减到大约18行。

我想知道如何计算每个分组中存在的记录数。因此,例如DBID 105具有526的总和,其由395个记录组成,DBID 104具有124的总和,在分组期间使用241个记录组成。

有什么想法吗?

使用Microsoft SQL Server 2012。

2 个答案:

答案 0 :(得分:4)

然后使用COUNT()

SELECT DBID, 
       COUNT(*) TotalRows, 
       SUM(TalkTime) TotalTalkTime
FROM   Incoming_Calls
GROUP  BY DBID

答案 1 :(得分:0)

Select DBID, SUM(TalkTime), COUNT(TalkTime) TalkTimeCount 
FROM Incoming_Calls 
GROUP BY DBID

或者,如果你想包含null值count,那么你可以这个

Select DBID, SUM(TalkTime), @@ROWCOUNT 
FROM Incoming_Calls 
GROUP BY DBID