我有这样的表
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)
怎么做?
感谢。
答案 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
希望有所帮助......