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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...