SQL,使用滞后计算行间数据

SQL, Calculate Data Between Rows Using Lag

我有一个 Play table,它有专栏和时钟。我想 return 拥有 'away' 的所有比赛,并计算上一场比赛和所选比赛之间经过的时间。问题是,使用我的查询,滞后函数正在计算一组只有 'away' 拥有球权的比赛而不是一组所有比赛的经过时间。

select (lag(clock, 1) over () - clock) from plays where possession = 'away';

如何使滞后(时钟,1)指的是所有比赛的集合,而不仅仅是那些拥有 = 'away' 的比赛?

我想你只是想要一个子查询:

select p.*
from (select p.*, (lag(clock, 1) over () - clock) as diff
      from plays p
     ) p
where possession = 'away';