2016-07-27 135 views
-1

我有一个Postgresql数据库,其中包含一个用于时间戳的列和一个用于读取的列。我有几个读数每秒。我想返回任何给定秒钟的最高读数。我有一个查询来提取我喜欢的格式的时间戳,并提取权力,但我不知道如何过滤以获得最高的权力阅读。从Postgresql中的时间序列中提取最大值

例如:

[ts1 second = 5] [reading = 3] 
[ts2 second = 5] [reading = 5] 

我想查询返回[ts2 second = 5] [reading = 5],在列中的每个唯一的第二。

我的问题的一部分是时间戳包括毫秒,我希望是第二个唯一。

+0

这看起来像是一个普通的使用max,group by和order by。你有什么困难?你有什么尝试? –

+0

@JorgeCampos - 我很高兴知道这很容易,谢谢。我仍在试验。我到目前为止只在Postgresql中使用基本查询,所以这对我来说是先进的:) –

+0

这将是:'从第二限制1'选择第二,最大(读取)来自yourtable组,不需要订单。 .. –

回答

1
SELECT "ts2 second" , MAX("reading") 
FROM yourTable 
GROUP BY "ts2 second" 
0
select second, 
     max(reading) 
    from yourtable 
group by second 
limit 1 

limit 1是让只有一个结果。

相关问题