SUM和平均值

时间:2012-01-23 09:54:20

标签: 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, Disconnected)))/60.00,
CONVERT (INT, SUM (
DATEDIFF(second, Connected, Disconnected)))/60.00/(SELECT COUNT ID)

怎么做?

感谢。

2 个答案:

答案 0 :(得分:3)

SELECT ID, AVG(CONVERT (INT, SUM (DATEDIFF(second, Connected, Disconnected)))/60.00)
GROUP BY ID

答案 1 :(得分:1)

另一个解决方案: 在表中添加另一列并在设计模式下将其称为Diff(或其他),将“计算列规范”设置为“(datediff(第二,[已连接],[已断开连接]))” 现在你有一个带有计算出的diff值的列!

然后您可以在没有聚合或子查询错误的情况下进行分组:)

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

希望有所帮助......