PostgreSQL按小时取5片
时间: 2024-03-28 12:41:32 浏览: 18
您可以使用以下SQL语句来按小时获取最近的5条记录:
```
SELECT * FROM your_table
WHERE date_column >= now() - INTERVAL '1 hour'
ORDER BY date_column DESC
LIMIT 5;
```
这个查询将选择最近1小时内的记录,并按日期列降序排序,最后限制结果为5条记录。您需要将“your_table”替换为您的表名,并将“date_column”替换为包含日期时间的列的名称。
相关问题
PostgreSQL按小时每小时取5笔数据
您可以使用以下SQL查询来获取每小时的最新5条记录:
```
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY date_trunc('hour', date_column) ORDER BY date_column DESC) AS row_num
FROM your_table
WHERE date_column >= now() - INTERVAL '1 day'
) subquery
WHERE row_num <= 5;
```
这个查询将首先按小时截断时间戳,并按时间戳降序对每个小时内的记录进行排序,然后使用ROW_NUMBER函数为每个小时内的记录分配行号。最后,它将选择行号小于或等于5的记录。您需要将“your_table”替换为您的表名,并将“date_column”替换为包含日期时间的列的名称。如果您想要获取最近24小时内的记录,则需要将查询中的“INTERVAL '1 day'”替换为“INTERVAL '24 hours'”。
PostgreSQL将检索结果器别名,再从其中按小时每小时取5笔数据
您可以使用以下SQL查询来为检索结果器设置别名,并按小时获取每小时的最新5条记录:
```
SELECT *
FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY date_trunc('hour', date_column) ORDER BY date_column DESC) AS row_num
FROM (
SELECT column1, column2, ..., columnN, date_column
FROM your_table
WHERE condition
) subquery_alias
) subquery_alias_2
WHERE row_num <= 5;
```
这个查询将首先从您的表中选择您需要的列,并使用子查询将检索结果器别名为“subquery_alias”。然后,它将按小时截断时间戳,并按时间戳降序对每个小时内的记录进行排序,然后使用ROW_NUMBER函数为每个小时内的记录分配行号。最后,它将选择行号小于或等于5的记录。您需要将“your_table”替换为您的表名,并将“column1, column2, ..., columnN”替换为您需要选择的列名,并替换“condition”为您的条件。如果您想要获取最近24小时内的记录,则需要将查询中的“INTERVAL '1 day'”替换为“INTERVAL '24 hours'”。