2

我想将一列应用于我提取最新登录日期的用户列表。传统上我会做这样的事情:

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

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

4

1 回答 1

2

这种方法似乎有效:

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(或标准 SQL LEFT JOIN LATERAL)。你只需要一个普通的LEFT JOIN. 我假设你的外部应用派生表做了一些更花哨的事情,需要这个运算符。

于 2021-02-17T15:19:22.737 回答