回答

收藏

SQL找出两行之间的区别

技术问答 技术问答 204 人阅读 | 0 人回复 | 2023-09-13

我有一个Informix数据库包含许多不同位置的测量温度值。每15分钟测量一次所有位置,然后将时间戳加载到同一表中。表格看起来像这样:
7 h. @7 _* W- v6 a: ?locId dtg tempaaa 2009-02-25 10:00 15bbb 2009-02-25 10:00 20ccc 2009-02-25 10:00 24aaa 2009-02-25 09:45 13ccc 2009-02-25 09:45 16bbb 2009-02-25 09:45 18ddd 2009-02-25 09:45 12aaa 2009-02-25 09:30 11ccc 2009-02-25 09:30 14bbb 2009-02-25 09:30 15ddd 2009-02-25 09:30 10现在,我想查询一下,向我展示所有次测量之间的温度变化。此外,只有具有更新测量值的测量值。例如,在上表中ddd不包括在内。因此,结果变为:9 }4 e8 r, q$ O5 f# ?) _/ m: c
locId    changeaaa     2bbb     2ccc    8我尝试了很多,但我找不到任何好的解决方案。事实上,大约有700个网页查询位置,所以我认为查询需要相当有效。
" X6 c) }" v9 D# {# r8 j3 X非常感谢您的帮助!7 K0 q8 O8 ?1 k* O7 e
//杰士伯
0 T) v1 M! O# u, H: ?) e                                                               
2 ?& n) ]+ m0 d. c    解决方案:                                                               
+ M8 k$ a) C7 k                                                                set now = select max(dtg) from table;* @  }7 R3 y0 e" o
                set then = select max(dtg) from table where dtg
' u. T1 d. L$ Pselect locID,old.temp-new.temp from       table as old join      table as new       on old.locId = new.locIDwhere      old.dtg = then and      new.dtg = now;假设所有的时间都是准确的
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则