回答

收藏

SQL条件带限制和先前值的位置

技术问答 技术问答 186 人阅读 | 0 人回复 | 2023-09-12

我有一个包含传感器数据的表格data1.传感器数据允许(报警)的限制data1high和data1low。我想创建一个视图,只列出那些data1值,它们是第一个移出限制(即报警条件)或移回安全限制(不再有报警条件)的值。0 a, o& F$ C* g% Z
这是典型的表:5 |. Z& F% b5 k2 D, J
| id | data1 | data1high | data1low | |----|-------|-----------|----------||  1 |    60 |    |      1000  ||  2 |    80 |    |      1000  ||  3 |   123 |    |      1000  ||  4 |   150 |    |      1000  ||  5 |    60 |    |      1000  ||  6 |    60 |    |      1000  | |  7 |   150 |    |      1000  ||  8 |    40 |    |      1000  ||  9 |    58 |    |      1000  || 10 |    62 |    |      1000  || 11 |   300 |    |      1000  |逻辑是值where data1  data1high警报状态,因此应列出。4 r) H: L" g2 F, U' d8 z$ ?' U
例如,
4 b7 `, K7 r( @* @9 F) C| id | data1 ||----|-------||  1 |    60 ||  2 |    80 ||  5 |    60 ||  6 |    60 ||  8 |    40 ||  9 |    58 || 10 |    62 || 11 |   300 |上表显示了警报状态下的所有值。我不想这样做,只有那些刚刚转换为状态的数据和数据data1.返回安全范围内第一值的数据,所以我的理想观点是:
7 r' v8 z. U3 y1 w9 \4 ]1 l7 `| id | data1 | data1high | data1low | |----|-------|-----------|----------||  1 |    60 |    |      1000  ||  3 |   123 |    |      1000  ||  5 |    60 |    |      1000  | |  7 |   150 |    |      1000  ||  8 |    40 |    |      1000  || 11 |   300 |    |      1000  |id 1处于警报状态,因此被列出; id 2因仍处于警报状态而省略; id 3因为它是下一个返回限值而被列出; id% F/ i% A1 Q7 V
省略了4,因为它还在限值内,id列出5,因为它超出了限制等…
2 Y$ K' R8 X  _" w4 P5 j) _1 ]  [                                                               
% }  j9 h9 D) K3 J+ M    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则