关于多个记录的Postgresql date_part

时间:2017-03-06 16:33:52

标签: postgresql

我有多个记录,其中 值值不同 表:

我有一个出勤表,结构如下:

  

谁|当|为什么

     

"当"带时区的时间戳NOT NULL,

     

"谁"文本,

我需要计算同一的每条记录之间的差异。

我试过了:

BillingRate

但似乎没有用。

DATE_PART('hour', table."when"::timestamp - table."when"::timestamp)

需要将A和B分开的总小时数

1 个答案:

答案 0 :(得分:1)

您需要window function才能访问“上一行”的值:

select who, 
       when, 
       when - lag(when) over (partition by who order by when) as diff
from the_table
order by who, when;

如果您每个人只有两行,或者只关心when的第一个和最后一个值,请使用简单的聚合:

select who, 
       max(when) - min(when)
from the_table 
group by who
order by who;