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
这给出了以下结果,请注意它是如何看起来像多行的单行。
我有记录类型为 '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
这给出了以下结果,请注意它是如何看起来像多行的单行。