PostgreSQL检索出很多天的数据,现在在这些数据按其中col1,col2,col3字段分组后每组中每隔一小时取5笔数据
时间: 2023-12-09 07:02:29 浏览: 82
您可以使用以下SQL语句来实现您的需求:
```sql
SELECT col1, col2, col3, timestamp, value
FROM (
SELECT *, row_number() OVER (PARTITION BY col1, col2, col3, date_trunc('hour', timestamp) ORDER BY timestamp) AS rn
FROM your_table
WHERE timestamp >= now() - interval 'X days'
) AS subquery
WHERE rn <= 5 AND EXTRACT(MINUTE FROM timestamp) = 0
ORDER BY col1, col2, col3, timestamp
```
其中,您需要将X替换为您想要检索的天数。该查询首先使用子查询来按照group by的字段和小时分组,并为每个组中的记录添加一个行号。然后,外部查询选择每个组中的前5条记录,并且时间戳的分钟部分必须为0,以确保只选择每小时的前5条记录。最后,结果按照group by的字段和时间戳排序。
阅读全文
相关推荐


















