首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从今天和昨天在PostgreSQL上获得最新数据吗?

从今天和昨天在PostgreSQL上获得最新数据吗?
EN

Stack Overflow用户
提问于 2022-03-06 06:06:15
回答 1查看 474关注 0票数 0

我有一些时间序列数据,我想得到一些有关的信息。

我将如何检索两个记录,在哪里我得到今天和昨天的最新记录?

这是一些我正在处理的数据的样本数据。

代码语言:javascript
代码运行次数:0
运行
复制
latest  price       amount  avg_rating  time
4.9     13323.92256 153     5.466540778 2022-03-05 23:55:56.852459-05 <--- Today's latest record
4.99    13318.92256 154     5.490350302 2022-03-05 23:17:55.814162-05   
5.7     13009.62049 151     6.5314      2022-03-05 02:39:39.826069-05   
5.99    12997.92049 154     6.571948718 2022-03-05 01:13:48.528526-05   
5.99    12911.34049 150     6.867946429 2022-03-04 18:14:01.177497-05 <--- Yesterday's latest record
5.99    12911.34049 151     6.845169492 2022-03-04 17:34:05.538811-05   
5.99    12911.34049 153     6.845169492 2022-03-04 17:08:19.254631-05   

我想要的是下面

代码语言:javascript
代码运行次数:0
运行
复制
latest  price       amount  avg_rating  time
4.9     13323.92256 153     5.466540778 2022-03-05 23:55:56.852459-05
5.99    12911.34049 150     6.867946429 2022-03-04 18:14:01.177497-05
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-06 06:22:13

只从time列提取日期,并在PARTITION子句中使用它。由于今天和昨天的数据是必需的,那么今天使用current_date,昨天使用current_date -1检索两个日期数据。此查询适用于此禁用WHERE子句的所有日期。从日期上看,最近的数据是根据需要使用子查询选择的。

代码语言:javascript
代码运行次数:0
运行
复制
SELECT t.latest
     , t.price
     , t.amount
     , t.avg_rating
     , t.time
FROM (SELECT *
           , ROW_NUMBER() OVER (PARTITION BY time :: VARCHAR(10) :: DATE ORDER BY time DESC) row_num
      FROM table_name
      WHERE time :: VARCHAR(10) :: DATE BETWEEN current_date - 1 AND current_date) t
WHERE t.row_num = 1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71368045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档