【发布时间】:2021-03-27 15:23:58
【问题描述】:
我在 postgres 数据库中有很多包含时间值的值。
数据库包含一个记录单元颜色,类似这样:
[
{
id: 1234,
unit: 2,
color: "red",
time: "Wed, 16 Dec 2020 21:45:30"
},
{
id: 1235,
unit: 2,
color: "red",
time: "Wed, 16 Dec 2020 21:47:30"
},{
id: 1236,
unit: 6,
color: "blue",
time: "Wed, 16 Dec 2020 21:48:30"
},
{
id: 1237,
unit: 6,
color: "green",
time: "Wed, 16 Dec 2020 21:49:30"
},
{
id: 1237,
unit: 6,
color: "blue",
time: "Wed, 16 Dec 2020 21:49:37"
},
]
我希望能够以 10 分钟的平均值查询此列表,这应该返回包含平均值的最早记录。
例如,在 21:40 - 21:50 的 10 分钟内,我应该只收到 2 个具有该时间段内平均值的唯一单位。
返回的数据应该是这样的:
[
{
id: 1234,
unit: 2,
color: "red",
time: "Wed, 16 Dec 2020 21:45:30"
},
{
id: 1236,
unit: 6,
color: "blue",
time: "Wed, 16 Dec 2020 21:48:30"
},
]
我应该使用什么类型的查询来实现这样的目标?
谢谢
【问题讨论】:
标签: sql postgresql datetime greatest-n-per-group date-arithmetic