1

可能重复: SQL - 将单个表中一列的所有行值相加

这听起来可能是一个非常简单的问题,但我无法找到有效的答案。

我在表中有一个名为“timeId”“通话时间”“保持时间”和“呼叫计数”的列

此表中有 200 多行,每行都有一个调用计数。例如

TimeId     talktime    holdtime   CallCount    
1            20           40         3
2            105          9          6
3            433          43         12
4            403          44         15
5            199          85         22

如何运行查询以将呼叫计数中的所有值相加?但没有分组?

谢谢

4

6 回答 6

3

如果你只想得到所有计数的总和,你可以使用这个:

SELECT SUM(CallCount) FROM MyTbl;

如果您想将总计与其他值一起使用,可以使用 OVER 子句:

SELECT *, SUM(CallCount)OVER()
FROM MyTbl;
于 2013-04-03T14:59:16.300 回答
0
SELECT sum(CallCount) FROM myTable

假设CallCount是数值数据类型。

于 2013-04-03T14:58:22.820 回答
0
Select [Total call count] = Sum([call count]) From [your table]
于 2013-04-03T14:58:32.180 回答
0

SELECT SUM(CallCount) FROM tblname

于 2013-04-03T14:58:35.050 回答
0
SELECT  a.*,
        b.TotalCount
FROM    TableName a
        CROSS JOIN
        (
            SELECT  SUM(CallCount) TotalCount -- Calculates all CallCount
            FROM    TableName
        ) b

输出

╔════════╦══════════╦══════════╦═══════════╦════════════╗
║ TIMEID ║ TALKTIME ║ HOLDTIME ║ CALLCOUNT ║ TOTALCOUNT ║
╠════════╬══════════╬══════════╬═══════════╬════════════╣
║      1 ║       20 ║       40 ║         3 ║         58 ║
║      2 ║      105 ║        9 ║         6 ║         58 ║
║      3 ║      433 ║       43 ║        12 ║         58 ║
║      4 ║      403 ║       44 ║        15 ║         58 ║
║      5 ║      199 ║       85 ║        22 ║         58 ║
╚════════╩══════════╩══════════╩═══════════╩════════════╝
于 2013-04-03T14:58:47.677 回答
0

根据您的 SQL Server 版本,您可能可以使用SUM() Over()窗口函数:

select Timeid, 
  talktime, 
  holdtime, 
  callcount,
  sum(callcount) over() TotalCalls
from yourtable

请参阅带有演示的 SQL Fiddle

于 2013-04-03T15:00:00.973 回答