Bigquery 嵌套 table 导致类似查询的不同结果

Bigquery nested table resulting out different results for similar queries

我有记录类型为 'trigger_prop' 的 Bigquery table 列,这是我正在使用的两种查询方式,但它会产生不同的输出:

第一次查询:

SELECT b.* FROM dataset.table a, unnest(trigger_prop) as b
where b.number=425600;

第二个查询:

SELECT a.trigger_prop FROM dataset.table a, unnest(trigger_prop) as b
where b.number=425600;

'Query1 is resulting out 1 record',而 'query2 is resulting out 2 records' 来自 table 是实际记录。这两个查询都在做同样的事情,但产生不同的输出。第一个查询返回较少的记录,而第二个查询返回实际记录。有人可以帮我理解这两个查询的区别吗?

他们做的不是同一件事,区别在于 SELECT a.trigger_prop vs SELECT b.* 与 tables.
不同 第一个查询从 table b 中选择 trigger_prop 的未嵌套 t运行slation,它“展开”数组并保留带有 number=425600.
的单个数组项 第二个查询从源table和returns单行中选择原始trigger_prop字段,但是这一行中有多个数组项所以由于 trigger_prop.

中的数组,它 看起来 像多行

为了演示我 运行 以下查询,请注意 LIMIT 1 子句:

WITH
  TABLE AS (
  SELECT
    ARRAY<STRUCT<number INTEGER,
    name STRING>>[(1,
      "me"),
    (2,
      "you")] AS trigger_prop)
SELECT
  a.trigger_prop
FROM
  TABLE AS a,
  UNNEST(trigger_prop) AS b
WHERE
  b.number=1
LIMIT 1

这给出了以下结果,请注意它是如何看起来像多行的单行。