![](/img/trans.png)
[英]How to specify the order of data displayed in BigQuery using the Union All function
[英]Google BigQuery UNION ALL Not Working As Expected
这很好用:
SELECT
DISTINCT query
FROM
(SELECT * FROM (
(SELECT query, impressions FROM a_temp.sqpr1)
UNION ALL
(SELECT query, impressions FROM a_temp.sqpr2)
)
)
这给出了一个错误:
SELECT
DISTINCT query
FROM
(SELECT query, impressions FROM a_temp.sqpr1)
UNION ALL
(SELECT query, impressions FROM a_temp.sqpr2)
具体来说,错误是: UNION ALL 中的查询具有不匹配的列数; 查询 1 有 1 列,查询 2 在 [6:2] 有 2 列
两个查询显然都有 2 列。
BigQuery 将您的查询解析为:
SELECT
DISTINCT query
FROM
(SELECT query, impressions FROM a_temp.sqpr1)
UNION ALL
(SELECT query, impressions FROM a_temp.sqpr2)
不像:
SELECT
DISTINCT query
FROM
(SELECT query, impressions FROM a_temp.sqpr1)
UNION ALL
(SELECT query, impressions FROM a_temp.sqpr2)
解析器看到的是(SELECT DISTINCT query FROM X) UNION ALL (Y)
,而不是SELECT DISTINCT query FROM (X UNION ALL Y)
,这就是它抱怨列数不匹配的原因:列数不匹配!
带有显式括号分组的第一个查询之所以有效,是因为它强制解析器以后一种形式查看查询,而不是前者,前者具有匹配的列数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.