【发布时间】:2015-09-02 01:38:51
【问题描述】:
我有一个像这样的表 Id、DateTime、Device、Value。 我需要找到 Value >=5 的所有时段,并为这些时段返回 From 和 To dateTime。 设备可以是温度传感器,我需要温度超过 5 的 From/To 列表。
如果我们认为它是一个温度传感器并且它每 5 分钟记录一次。表格将是这样的:
Id DateTime Device Value
--------------------------------
1 2015.09.01 09:10 T1 3,2
2 2015.09.01 09:15 T1 5,2
3 2015.09.01 09:20 T1 6,2
4 2015.09.01 09:25 T1 5,8
5 2015.09.01 09:30 T1 3,2
6 2015.09.01 09:35 T1 1,2
7 2015.09.01 09:40 T1 5,6
8 2015.09.01 09:45 T1 6,1
9 2015.09.01 09:50 T1 5,0
10 2015.09.01 09:55 T1 2,0
我试图找到的时段是从 09:15 到 09:25 以及从 09:40 到 09:50。
在 SQL Server 2014 中是否有一种智能的方法来执行此操作?
【问题讨论】:
-
如果您能提供一些示例数据以及所需的结果集,将会很有帮助。
-
我不知道从哪里开始。我想我必须找到 value>=5 的所有记录,然后我必须找到 value >=5 但没有任何记录的最后一条记录具有情人值。
-
如果我们认为它是一个温度传感器并且它每 5 分钟记录一次。表格将是这样的。 1. 2015.09.01 09:10 T1 3,2 2. 2015.09.01 09:15 T1 5,2 3. 2015.09.01 09:20 T1 6,2 4. 2015.09.01 09:25 T1 5,8 5. 2015.09.01 09:30 T1 3,2 6. 2015.09.01 09:35 T1 1,2 7. 2015.09.01 09:40 T1 5,6 8. 2015.09.01 09:45 T1 6,1 9. 2015.09. 01 09:50 T1 5,0 10. 2015.09.01 09:55 T1 2,0 我试图找到的时间段是从 09:15 到 09:25 以及从 09:40 到 09:50。
-
如果我正确理解了这个问题,您有一个经常记录温度的表格,并且您希望获得一个温度不低于 5 度的时间段的结果集。为此,您需要按日期对表格进行排序,按温度高于 5 度的记录分组,并为每个组选择 MIN 和 MAX 日期。确实是个不错的问题!
-
是的,我想你现在开始我需要的东西了:),我喜欢你的想法,但我想我只会得到 1 个结果作为回报?一天中可能有 5 次温度超过 5 度,我需要找到所有这些时期。结果集是 5 条记录,每次温度超过 5 度时的开始和结束时间。 (对不起我的英文写得不太好)
标签: sql-server sql-server-2014