从Postgresql中的时间序列中提取最大值
问题描述:
我有一个Postgresql数据库,其中包含一个用于时间戳的列和一个用于读取的列。我有几个读数每秒。我想返回任何给定秒钟的最高读数。我有一个查询来提取我喜欢的格式的时间戳,并提取权力,但我不知道如何过滤以获得最高的权力阅读。从Postgresql中的时间序列中提取最大值
例如:
[ts1 second = 5] [reading = 3]
[ts2 second = 5] [reading = 5]
我想查询返回[ts2 second = 5] [reading = 5]
,在列中的每个唯一的第二。
我的问题的一部分是时间戳包括毫秒,我希望是第二个唯一。
答
SELECT "ts2 second" , MAX("reading")
FROM yourTable
GROUP BY "ts2 second"
答
select second,
max(reading)
from yourtable
group by second
limit 1
limit 1
是让只有一个结果。
这看起来像是一个普通的使用max,group by和order by。你有什么困难?你有什么尝试? –
@JorgeCampos - 我很高兴知道这很容易,谢谢。我仍在试验。我到目前为止只在Postgresql中使用基本查询,所以这对我来说是先进的:) –
这将是:'从第二限制1'选择第二,最大(读取)来自yourtable组,不需要订单。 .. –