在Postgresql

时间:2016-05-25 21:01:14

标签: sql postgresql

我的表只包含以下字段:

时间戳,级别 (timestamptz,双精度)
该表由来自测量实时信号电压的传感器的数据提供。采样频率为1 Hz 实际样本数据如下:

`2016-05-23 08:00:00+02 | 44.0
 2016-05-23 08:00:01+02 | 43.9
 2016-05-23 08:00:02+02 | 44.1
 2016-05-23 08:00:03+02 | 54.6
 2016-05-23 08:00:04+02 | 61.0
 2016-05-23 08:00:05+02 | 62.2
 2016-05-23 08:00:06+02 | 63.4
 2016-05-23 08:00:07+02 | 62.9
 2016-05-23 08:00:08+02 | 61.9
 2016-05-23 08:00:09+02 | 63.9
 2016-05-23 08:00:10+02 | 44.2
 2016-05-23 08:00:11+02 | 44.0
 2016-05-23 08:00:12+02 | 61.3
 2016-05-23 08:00:13+02 | 62.4
 2016-05-23 08:00:14+02 | 44.3
 2016-05-23 08:00:15+02 | 43.8'


我想要达到的目的是找到一个时间戳,当电压超过60毫伏至少3个后续样本时(为了抑制随机尖峰)。该条件在时间2016-05-23 08:00:06+02完成,因此{ {1}}应作为事件开始时间返回。
然后我需要找到事件的结束,即电压降至60 mV以下的时间。但是我想抑制随机丢弃,所以正确的结束时间戳应该是2016-05-23 08:00:04+02

我试着编写一个使用Postgresql窗口函数的查询,但没有运气。

1 个答案:

答案 0 :(得分:0)

这是部分解决方案。也许还有改进的余地。

#banner {
background-color:#FFFFFF;float:left;width:30%;height:71px;border:2px solid;
}

#button {
    background-color:#FFFFFF;
    border:2px solid;
    float:left;
    width:15%;
    height:71px;
}
#fixbutton {
    background-color:#FFFFFF;
    border:2px solid;
    float:left;
    width:15%;
    height:71px;
}
#main {
    background-color:#FFFFFF;
    height:204px;
    width:23%;
    float:left;border:2px solid;
}
#picture {
    background-color:#FFFFFF;
    height:575px;
    width:55%;
    float:left;
    border:2px solid;
}
#text {
    background-color:#FFFFFF;
    height:361px;
    width:100%;
    border:2px solid;
    text-align:center;
    clear:right;
}
#additionaltext {
    background-color:#FFFFFF;
    height:575px;
    width:20%;
    float:right;
    border:2px solid;
}
#p1 {
    text-align:center;
    font-size:150%;
}
#button:hover {
    background-color:#ffff99;
}
#fixbutton:hover {
    background-color:#ffff99;
}
.clear{clear:both;}

p{margin-bottom:0}

这会给你这样的结果:

<div id="banner" id="banner"></div> <div class "menu"> <a href="index.html"><div id="button"><p id="p1">Home</p></div></a> <a href="about.html"><div id="button"><p id="p1">About Me</p></div></a> <a href="career.html"><div id="button"><p id="p1">Career</p></div></a> <a href="school.html"><div id="fixbutton"><p id="p1">Schooling</p></div></a> </div> <div class="clear"> </div> <div id="main"> <p align="center" style="font-size:400%">About Me</p> <div id="text"> <p id="p1">As an individual, I like to think of myself as a very artistic and creative person. My hobbies are mostly just me drawing and playing my instrument. My ideal career would be in art and/or music.</p> </div> </div> <div id="picture"> <img height="575" width="751" src="4-photos-art.jpg"/> </div> <div id="additionaltext"></div>

然后当你处理它时,你会找到“on”,当你找到它时,你会寻找下一个“关闭”。 (显然,布尔列会更有效,但这更适合说明。)