自我加入Postgres

时间:2018-12-07 13:39:16

标签: sql postgresql pivot

我有一个带有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 个答案:

答案 0 :(得分:0)

我希望关闭时间总是在创建时间之后,因此创建时间是列create_time的最小值,关闭时间是该列的最大值。

因此,您需要按查询进行简单分组:

select ticket_number, 
       min(create_time) as create_time, 
       max(create_time) as close_time
from the_table
group by ticket_number;