我有一个名为Assets的表,其架构如下
CREATE TABLE assets
(
id int,
location_id int,
updated_at timestamp
)
资产可以按时间分配到不同的位置,但一次只能分配一个位置,此表跟踪所有资产和所有位置更改。比如
(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)--一个月内新部署的资产。
我如何编写此查询?
1条答案
按热度按时间fcg9iug31#
我认为这至少应该会让您开始走上一条道路,但我分析了上个月发生的所有行,然后查看它们的最后更新时间是什么。您可以根据需要调整邮件/格式。
如果您需要更深入地查看过去的历史,您还可以查看postgres窗口函数,如Lag或Lead。