流式传输视频数据(带有时间戳的事件类型)以使用设备进行源和目标。
select
r1.customer_id,
'Play on ' || (r1.device) as source,
'Play on ' || lead(r2.device,1) OVER(PARTITION BY r2.customer_id ORDER BY
r2.time::timestamp ASC) as target
from streaming r1
left join streaming r2 on r1.customer_id=r2.customer_id
以上查询为我提供8 * 8 = 64行,但我需要8行(如上图所示),我们将不胜感激
*使用PostgreSQL
答案 0 :(得分:1)
您为什么要进行自我加入?结果似乎只需要lag()
:
select s.customer_id,
lag(s.device) over (partition by s.customer_id order by s.time) as source,
s.device as target,
from streaming s;