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

时间:2016-01-09 17:11:59

标签: sql postgresql subquery lag

我有一个Play表,它拥有列和时钟。我想要归还所有拥有“离开”的比赛,并计算上一场比赛和所选比赛之间经过的时间。问题是,使用我的查询,滞后函数计算一组只有“离开”拥有而不是一组所有游戏的游戏的经过时间。

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

如何使滞后(时钟,1)参考所有播放的集合,而不仅仅是拥有='离开'的那些?

1 个答案:

答案 0 :(得分:1)

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

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