将相同输入类型的多个值传递给 BigQuery Table Value Function

Pass multiple values of same input type to BigQuery Table Valued Function

假设我有一个 table 值函数 (TVF),例如

CREATE TEMP TABLE FUNCTION Job(
  input_val INT64)
AS
SELECT
  val,
  row2
FROM TableOfInterest
WHERE val = input_val;

效果很好,return 是单个 input_val 的合适结果。但是我想要 return 多行,每个值对应 input_val.

通过伪代码

SELECT 
    val,
    row2
FROM
  Job(
    (
      SELECT
        val
      FROM ValTable
      LIMIT 100
    ))

我的希望是 return 100 行,其中每一行都给我来自 TableOfInterest 的相应结果,对应 input_val.

的相应值

另一个问题是,最终我想加入第二个 TVF,如下所示

CREATE TEMP TABLE FUNCTION Job2(
  input_val INT64)
AS
SELECT
  val,
  row3
FROM TableOfInterest2
WHERE val = TIMESTAMP_FROM_UNIX_MICROS(input_val);

如何为 input_val 传递每个 TVF 的多个值并返回 tables?

我查看了 this and this,但它们似乎没有解决我在 BigQuery 中尝试做的事情。这感觉很简单。不是吗?

我确定我只是遗漏了文档中一些明显的东西。感谢您的帮助!

But I'd like to return multiple rows, one for each value of input_val.

考虑以下:

第 1 步 - 创建 table 函数

CREATE TABLE FUNCTION project.dataset.Job(input_vals array<INT64>) AS (
  SELECT
    val,
    row2
  FROM TableOfInterest
  WHERE val IN UNNEST(input_vals)
);      

第 2 步 - 使用它:o)

SELECT 
    val,
    row2
FROM project.dataset.Job(
    ARRAY(
      SELECT val
      FROM ValTable
      LIMIT 100
    ))