我有多个记录,其中 值值不同 表:
我有一个出勤表,结构如下:
谁|当|为什么
"当"带时区的时间戳NOT NULL,
"谁"文本,
我需要计算同一谁的每条记录之间的差异。
我试过了:
BillingRate
但似乎没有用。
即
DATE_PART('hour', table."when"::timestamp - table."when"::timestamp)
需要将A和B分开的总小时数
答案 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;