Sql server 总和与平均数

Sql server 总和与平均数,sql-server,Sql Server,我有这样的桌子 ID, Connected, Disconnected 我需要计算每个id花在连接上的时间,这很简单: SELECT ID, CONVERT (INT, SUM ( DATEDIFF(second, Connected, Disconnected)))/60.00 我还需要找到上面的平均连接时间除以每个ID的ID的连接数 像这样的东西不起作用 SELECT ID, CONVERT (INT, SUM ( DATEDIFF(second, Connected, Disconne

我有这样的桌子

ID, Connected, Disconnected
我需要计算每个id花在连接上的时间,这很简单:

SELECT ID,
CONVERT (INT, SUM (
DATEDIFF(second, Connected, Disconnected)))/60.00
我还需要找到上面的平均连接时间除以每个ID的ID的连接数

像这样的东西不起作用

SELECT ID,
CONVERT (INT, SUM (
DATEDIFF(second, Connected, Disconnected)))/60.00,
CONVERT (INT, SUM (
DATEDIFF(second, Connected, Disconnected)))/60.00/(SELECT COUNT ID)
如何做到这一点

谢谢。

另一种解决方案:
SELECT ID, AVG(CONVERT (INT, SUM (DATEDIFF(second, Connected, Disconnected)))/60.00)
GROUP BY ID
将另一列添加到表中,并将其称为Diff或其他在设计模式下将计算列规范设置为datediffsecond、[Connected]、[Disconnected] 现在,您有了一个具有计算的diff值的列

然后,您可以分组而不出现聚合或子查询错误:

SELECT ID, AVG(Diff)/60 -- Diff = Your computed column
FROM YourTable
GROUP BY ID
希望对您有所帮助。

另一种解决方案: 将另一列添加到表中,并将其称为Diff或其他在设计模式下将计算列规范设置为datediffsecond、[Connected]、[Disconnected] 现在,您有了一个具有计算的diff值的列

然后,您可以分组而不出现聚合或子查询错误:

SELECT ID, AVG(Diff)/60 -- Diff = Your computed column
FROM YourTable
GROUP BY ID

希望有帮助。

我得到以下错误:Msg 130,级别15,状态1,第51行无法对包含聚合或子查询的表达式执行聚合函数。我得到以下错误:Msg 130,级别15,状态1,第51行无法对包含聚合或子查询的表达式执行聚合函数。