首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何编写此SQL查询以显示资产?

如何编写此SQL查询以显示资产?
EN

Stack Overflow用户
提问于 2022-10-13 18:55:28
回答 1查看 30关注 0票数 -1

我有一个表调用带有以下模式的资产

代码语言:javascript
运行
复制
CREATE TABLE assets
(
   id int,
   location_id int,
   updated_at timestamp
)

资产可以按时间分配到不同的位置,但一次只能分配一个位置,此表跟踪所有资产和所有位置更改。比如

代码语言:javascript
运行
复制
(1,1,2022-08-01)
(1,2,2022-09-01)
(1,3,2022-10-01)
(2,1,2022-01-01)
(3,2,2022-10-05)
(4,1,2022-01-01)
(4,2,2022-02-01)

我需要查询以下结果:返回在一个月内新部署或在一个月内重新部署的资产。对于上面的数据集,它应该返回:

(1)-资产1在一个月内搬迁

(3)--一个月内新部署的资产。

如何编写此查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-13 20:19:01

我认为这至少会让您开始一条路径,但我提取了上个月发生的所有行,然后查看它们的上一次更新时间。您可以根据需要调整消息/格式。

如果您需要更深入地了解过去的历史,还可以查看Postgres窗口函数,如延迟或引导。

代码语言:javascript
运行
复制
select id, location_id, updated_at, 
(select max(updated_at) from assets a2 where a2.id = a.id and a2.updated_at < a.updated_at) as last_update_at
from assets a
where a.updated_at between current_timestamp - interval '1 month' and current_timestamp;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74060519

复制
相关文章

相似问题

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