0

在最近的更新之后,google bigquery 现在允许从特定国家的表中进行查询。我想在包含单词“space”的 us 表中找到来源(网站)的数量,并将其与 Japan 表中的类似结果并排显示。我正在做的查询是 -

WITH
 query_1 as 
    (select distinct origin as japan 
     from `chrome-ux-report.country_jp.201712` where 
     origin like "%space%"),
 query_2 as 
    (select distinct origin as usa 
     from `chrome-ux-report.country_us.201712` 
     where origin like "%space%" )
SELECT japan,usa from query_1,query_2

但它会导致表在 japan 和 usa 列中具有相同来源的多次重复。另一个奇怪的事情是 o/p 表包含相同数量的日本和美国的行,很明显,包含“空间”一词的站点数量在 2 个表中是不同的。我使用的是标准 sql,而不是旧版。任何帮助表示赞赏。谢谢。
注意:并排,我的意思是会有两列,日本列显示日本的网站,美国列显示美国的结果。

4

1 回答 1

3

在 BigQuery 标准 SQL(您在查询中使用)中,FROM语句中的表之间的逗号 mean CROSS JOIN。这解释了为什么it results in a table having multiple repetitions of the same origin in both the japan and usa column

取决于你希望你的结果看起来如何——你可以用许多不同的方式构建你的查询——例如

WITH
 query_1 AS 
    (SELECT DISTINCT origin AS japan 
     FROM `chrome-ux-report.country_jp.201712` WHERE 
     origin LIKE "%space%"),
 query_2 AS 
    (SELECT DISTINCT origin AS usa 
     FROM `chrome-ux-report.country_us.201712` 
     WHERE origin LIKE "%space%" )
SELECT 
  ARRAY(SELECT japan FROM query_1) AS japan,
  ARRAY(SELECT usa FROM query_2) AS usa   

您也可以检查计数如下

WITH
 query_1 AS 
    (SELECT DISTINCT origin AS japan 
     FROM `chrome-ux-report.country_jp.201712` WHERE 
     origin LIKE "%space%"),
 query_2 AS 
    (SELECT DISTINCT origin AS usa 
     FROM `chrome-ux-report.country_us.201712` 
     WHERE origin LIKE "%space%" )
SELECT 
  ARRAY_LENGTH(ARRAY(SELECT japan FROM query_1)) AS japan_count,
  ARRAY_LENGTH(ARRAY(SELECT usa FROM query_2)) AS usa_count
于 2018-01-28T20:19:27.740 回答