在 Postgres 中自我加入
Posted
技术标签:
【中文标题】在 Postgres 中自我加入【英文标题】:Self Join in Postgres 【发布时间】:2018-12-07 13:39:15 【问题描述】:我有一个带有 create_time 列的工单表。创建工单时,会在表中插入一行,插入创建时间的 create_time 列。并且当票据关闭时,在表中插入另一行,但现在 create_time 列获取票据的关闭时间。请在查询中帮助我,我可以在其中获得 Ticket_Number,Create_time 作为创建时间,Create_time 作为连续关闭时间。 意味着一张票应该与 2 个 create_time 列一起出现一次。
假设我有以下数据:-
Ticket_Number Create_Time
123 09-12-2018
123 10-12-2018
我希望输出为单行。输出意味着工单应该只出现一次,create_time 列应该出现两次,一次是创建日期,另一次是结束日期。
Ticket_Number Create_Time Create_Time
123 09-12-2018 10-12-2018
【问题讨论】:
【参考方案1】:我希望关闭时间总是在创建时间之后,因此创建时间是 create_time
列的最小值,而关闭时间是该列的最大值。
所以你需要一个简单的分组查询:
select ticket_number,
min(create_time) as create_time,
max(create_time) as close_time
from the_table
group by ticket_number;
【讨论】:
以上是关于在 Postgres 中自我加入的主要内容,如果未能解决你的问题,请参考以下文章