我有这样的SQL Server表:十大事件持续时间
TimeStamp (datetime)| Alarm (string) | Active (bool)
01.08.2013 1:30:05 | Alarm 1 | false
01.08.2013 1:29:54 | Alarm 2 | true
01.08.2013 1:28:43 | Alarm 1 | true
01.08.2013 1:27:21 | Alarm 3 | false
01.08.2013 1:26:35 | Alarm 1 | false
01.08.2013 1:25:34 | Alarm 1 | true
我已经显示前10个报警事件:
SELECT TOP 10 Alarm, COUNT(Alarm) AS Occurrence
FROM MyTable
WHERE (Active = 'True')
GROUP BY Alarm
ORDER BY Occurrence DESC
我现在需要前10个报警时间
目标是让每个警报的持续时间总和(从真到假)。
我真的被封锁在这,我想我需要迭代每行,并为每个满足的报警求和时间值。
但我不知道如何用SQL查询来做到这一点。任何帮助或方向将不胜感激。
预先感谢
@Roman PEKAR:SQL服务器2008
@戈登·利诺夫:预期输出=>顶部10报警持续时间(当警报为真))
time[min] | Alarm
50 | Alarm 2
34 | Alarm 3
22 | Alarm 1
...
你有什么版本的SQL Server? –
请提供样本输出。目前还不清楚您希望结果是针对问题中的数据。 –
如何计算报警2和报警3的时间,因为每个报警只发生一次(报警2 = 1真,报警3 = 1假)?另外,对于报警1,你需要2行还是只有1.我的意思是,你要计算总持续时间或两个持续时间,1:25:34到1:26:35,然后是1:28:43到1 :30:05? –