OUTER APPLY in BigQuery



我想将一列应用于用户列表,其中我提取了最近的登录日期。通常我会这样做:

SELECT U.* , O.* FROM Users.Users U 
OUTER APPLY ( SELECT .. FROM .. Events.Events E WHERE E.UserId = U.UserId) O

但是BigQuery似乎不能识别Outer Apply关键字。我做错了什么,上面有替代品吗?

这个方法似乎有效:

SELECT U.*, O.*
FROM Users.Users U
LEFT JOIN UNNEST((
SELECT array_agg(STRUCT(...))
FROM Events.Events E
WHERE E.UserId = U.UserId
)) ON TRUE

当然,在简化的情况下,实际上不需要OUTER APPLY(或标准SQLLEFT JOIN LATERAL)。你就用普通的LEFT JOIN。我假设外部应用的派生表做了一些更奇特的事情,需要这个操作符。

最新更新