【问题标题】:Output different query results in same table在同一张表中输出不同的查询结果
【发布时间】:2018-01-29 04:19:27
【问题描述】:

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

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,而不是旧版。 任何帮助表示赞赏。谢谢。
注意:并排,我的意思是会有两列,日本列显示日本的网站,美国列显示美国的结果。

【问题讨论】:

    标签: google-bigquery bigquery-standard-sql


    【解决方案1】:

    在 BigQuery 标准 SQL(您在查询中使用)中,FROM 语句中表之间的逗号表示 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
    

    【讨论】:

    • 感谢您的回答。当我尝试将数据保存到谷歌表格时,一条消息告诉我“结果架构包含记录或重复字段”。你能告诉我如何克服这个吗?
    • 如果您有新问题 - 将其作为新问题发布,有人将能够回答:o)
    • 嗨@Mikhail,这个查询非常适合小型查询,但是当我添加越来越多的国家/地区时,它会显示错误:查询执行期间资源超出
    • 您当前的问题与如何修复multiple repetitions of the same origin in both the japan and usa column 有关,这也是我的回答中解决的问题。如果您有新问题 - 请将其作为新问题发布并提供所有相关详细信息,以便我们回答:o)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多