删除连续的重复行bigquery
Removing consecutive duplicate rows bigquery
我有一些 event
分组到 sessions
中的数据。在某些情况下,我想删除那些会话中的连续重复事件。在 bigquery
中有没有办法做到这一点?
例如
初始table:
session eventType eventOrder
1 a 1
1 a 2
1 b 3
2 b 1
2 a 2
2 b 3
想要的结果:
session eventType eventOrder
1 a 1
1 b 3
2 b 1
2 a 2
2 b 3
您可以使用 lag()
。这个想法是将当前事件类型与同一会话的先前值进行比较,并消除它们匹配的记录:
select session, eventType, eventOrder
from (
select
t.*,
lag(eventType) over(partition by session order by eventOrder) lag_eventType
from mytable t
) t
where lag_eventType is null or eventType != lag_eventType
我有一些 event
分组到 sessions
中的数据。在某些情况下,我想删除那些会话中的连续重复事件。在 bigquery
中有没有办法做到这一点?
例如
初始table:
session eventType eventOrder
1 a 1
1 a 2
1 b 3
2 b 1
2 a 2
2 b 3
想要的结果:
session eventType eventOrder
1 a 1
1 b 3
2 b 1
2 a 2
2 b 3
您可以使用 lag()
。这个想法是将当前事件类型与同一会话的先前值进行比较,并消除它们匹配的记录:
select session, eventType, eventOrder
from (
select
t.*,
lag(eventType) over(partition by session order by eventOrder) lag_eventType
from mytable t
) t
where lag_eventType is null or eventType != lag_eventType