添加列中的所有值

时间:2013-04-03 14:56:30

标签: sql sql-server database count

  

可能重复: SQL - Add up all row-values of one column in a singletable

这可能听起来很简单,但我无法找到有效的答案。

我在表格中有一个名为'timeId''talktime''holdtime'和'call count'

的列

此表中有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

如何运行查询以将所有值添加到通话计数中?但没有分组?

谢谢

6 个答案:

答案 0 :(得分:2)

如果您只想获得所有计数的总和,可以使用:

SELECT SUM(CallCount) FROM MyTbl;

如果您想要总计和其他值,您可以使用OVER子句:

SELECT *, SUM(CallCount)OVER()
FROM MyTbl;

答案 1 :(得分:0)

SELECT sum(CallCount) FROM myTable

假设CallCount是数字数据类型。

答案 2 :(得分:0)

Select [Total call count] = Sum([call count]) From [your table]

答案 3 :(得分:0)

SELECT SUM(CallCount) FROM tblname

答案 4 :(得分: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 ║
╚════════╩══════════╩══════════╩═══════════╩════════════╝

答案 5 :(得分:0)

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

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

请参阅SQL Fiddle with Demo