Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 在bigquery中查询嵌套数据_Google Bigquery - Fatal编程技术网

Google bigquery 在bigquery中查询嵌套数据

Google bigquery 在bigquery中查询嵌套数据,google-bigquery,Google Bigquery,我试图提取bigquery google analytics数据中按主机名过滤的所有列。 但是,结果仍然显示屏幕截图上显示的其他主机名。 我使用过滤器进行选择,将数据复制到具有相同模式的另一个数据集 查询如下: SELECT g.* FROM `10241241.ga_sessions_20160805` g, UNNEST (hits) as hits WHERE hits.page.hostname= "www.googlemerchandisestore.com" 更新 如何在不更改嵌套

我试图提取bigquery google analytics数据中按主机名过滤的所有列。 但是,结果仍然显示屏幕截图上显示的其他主机名。 我使用过滤器进行选择,将数据复制到具有相同模式的另一个数据集

查询如下:

SELECT g.* FROM `10241241.ga_sessions_20160805` g, UNNEST (hits) as hits WHERE hits.page.hostname= "www.googlemerchandisestore.com"
更新 如何在不更改嵌套结构的情况下复制同一架构


你不应该再添加点击栏。另外,我建议您对未列出的列使用不同的名称。那就更容易理解了

SELECT g.* EXCEPT(hits), hit 
FROM `10241241.ga_sessions_20160805` g, UNNEST (hits) as hit 
WHERE hits.page.hostname= "www.googlemerchandisestore.com"

要筛选的值位于数组中。。。因此,您可以筛选/清理数组,或排除数组中不包含该值的行,或排除不仅包含该值的行。不确定哪一个适用于您,因为您似乎没有理由将数组与整个表交叉连接,这会使它变得非常庞大

清理阵列:

选择 * 代替 ARRAYSELECT AS STRUCT*从g.hits中选择,其中page.hostname='www.googlemerchandisestore.com'作为hits 来自“bigquery公共数据.谷歌分析”示例.ga_会话\u 20160805`g 限制1000 排除不包含该值的行

选择 * 来自“bigquery公共数据.谷歌分析”示例.ga_会话\u 20160805`g 哪里 从g.hits WHERE page.hostname='www.googlemerchandisestore.com'中选择COUNT1>0 限制1000
等等。

但是,在复制的目的地中,点击变成了点击,并改变了模式。它似乎不再被认为是嵌套的。我如何使其与从源表复制时相同?附加屏幕快照它确实有效!我使用了第一个,因为我需要将所有列添加到新表中。非常感谢。