BigQuery如何获得第一个(按任意列排序)行或其元素

时间:2019-07-03 08:22:35

标签: google-bigquery

当处理大型会话数据表时,我遇到了两种情况。我想在满足特定条件的会话中获得第一个事件(或者有时很简单的第一个事件)。在大多数情况下,我希望从该事件中获取特定的列。

表可能看起来像这样。

session_id, timestamp, column1, column2 ... columnn
xyz, datetime_1, attribute1_a, attribute2, ... attribute n
xyz, datetime_2, attribute1_b, attribute2, ... attribute n

已经讨论了一些方法here,并且在一定程度上here也有讨论。

我真的很喜欢窗口函数方法,因为我发现阅读起来很清楚,即类似于ROW_NUMBER() OVER(PARTITION BY session_id ORDER BY timestamp) AS first_created。我对此不满意的是,它需要一个外部查询,在此必须以first_created = 1为条件。此外,对于大量数据,此操作将失败。

in中提到的内部联接方法很好用,但也有点令人费解。由于该帖子是前一阵子的,所以我想知道是否已经找到了一种更轻松的方法来实现所需的结果。

0 个答案:

没有答案