我想将一列应用于用户列表,其中我提取了最近的登录日期。通常我会这样做:
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
。我假设外部应用的派生表做了一些更奇特的事情,需要这个操作符。