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行无法对包含聚合或子查询的表达式执行聚合函数。