我目前有一台工业气体发生器,它被数据记录到Postgres服务器上。发电机中的一个容器额定压力循环达10,000次。
是否有一个SQL示例或方法来显示容器的压力(每秒数据记录)在10 bar和100 bar之间循环的次数?
根据以下评论编辑:
表格结构:
CREATE TABLE log_934 (datetime timestamp primary key, pt001 real, pt002 real ...);
每秒“pt”值为压力时,数据通过外部程序插入表中。等效的INSERT命令是:
INSERT INTO log_934 (datetime, pt001, pt002 ... ) VALUES ('2015-05-10 10:00:00', 50.65, 75.54 ...);
INSERT INTO log_934 (datetime, pt001, pt002 ...) VALUES ('2015-05-10 10:00:01, 50.69, 75.49 ...);
...
预期结果将是:
|pt001 cycled between 10 and 100|
---------------------------------
|50 |
答案 0 :(得分:1)
我的第一个方法:
select count(*) from (
select distinct max(lmin.datetime) as inflexion
from log_934 lmax
inner join log_934 lmin on lmax.datetime > lmin.datetim and
lmin.pt001 <= 10
where lmax.pt001 >= 100
group by lmax.datetime
union all
select distinct max(lmax.datetime) as inflexion
from log_934 lmin
inner join log_934 lmax on lmin.datetime > lmax.datetim and
lmax.pt001 >= 100
where lmin.pt001 <= 10
group by lmin.datetime
) T
第一个子查询得到每个&gt; 100个日期时间读取的de&lt; 10日期时间。第二个做反过来。然后计算找到的日期时间。在这个漂亮的d3js即:
中看到它