Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/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
Sql 无法使用WHERE进行筛选(无法访问类型为ARRAY11的情况下评估是否存在hit。所以每一行要么生存要么不生存,都基于where子句,DISTINCT涉及的行数与根行的原始计数相同。在Gordon的解决方案中,所有行在其各自的命中上交叉连接,然后小时数大于11的行被纳入最终的DISTINCT。当然,最终的结果是一样的,但通过我的解决方案,它的路径更短。谢谢。有一个后续问题:我现在尝试求transactionRevenue的总和…在一个会话中,一个用户可以有多个会话…在这种情况下,为什么不需要最不合适的操作员?选择SUMtotals.totalTransactionRevenue FROM bigquery public data.google_analytics_sample.ga_sessions_*其中_TABLE_后缀介于'20170701'和'20170701'之间;请将您的新问题作为各自的新问题发布,我们将很乐意提供帮助。同时,如果它对你有帮助,可以考虑接受这个答案。同时回答你最近的后续问题:在这种情况下,你似乎不在乎时间,所以没有必要去逃避一些不会被使用的东西:o SELECT DISTINCT geoNetwork.country FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`, unnest(hits) hit WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' and hit.hour > 11;_Sql_Google Bigquery_Standards - Fatal编程技术网

Sql 无法使用WHERE进行筛选(无法访问类型为ARRAY11的情况下评估是否存在hit。所以每一行要么生存要么不生存,都基于where子句,DISTINCT涉及的行数与根行的原始计数相同。在Gordon的解决方案中,所有行在其各自的命中上交叉连接,然后小时数大于11的行被纳入最终的DISTINCT。当然,最终的结果是一样的,但通过我的解决方案,它的路径更短。谢谢。有一个后续问题:我现在尝试求transactionRevenue的总和…在一个会话中,一个用户可以有多个会话…在这种情况下,为什么不需要最不合适的操作员?选择SUMtotals.totalTransactionRevenue FROM bigquery public data.google_analytics_sample.ga_sessions_*其中_TABLE_后缀介于'20170701'和'20170701'之间;请将您的新问题作为各自的新问题发布,我们将很乐意提供帮助。同时,如果它对你有帮助,可以考虑接受这个答案。同时回答你最近的后续问题:在这种情况下,你似乎不在乎时间,所以没有必要去逃避一些不会被使用的东西:o SELECT DISTINCT geoNetwork.country FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`, unnest(hits) hit WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' and hit.hour > 11;

Sql 无法使用WHERE进行筛选(无法访问类型为ARRAY11的情况下评估是否存在hit。所以每一行要么生存要么不生存,都基于where子句,DISTINCT涉及的行数与根行的原始计数相同。在Gordon的解决方案中,所有行在其各自的命中上交叉连接,然后小时数大于11的行被纳入最终的DISTINCT。当然,最终的结果是一样的,但通过我的解决方案,它的路径更短。谢谢。有一个后续问题:我现在尝试求transactionRevenue的总和…在一个会话中,一个用户可以有多个会话…在这种情况下,为什么不需要最不合适的操作员?选择SUMtotals.totalTransactionRevenue FROM bigquery public data.google_analytics_sample.ga_sessions_*其中_TABLE_后缀介于'20170701'和'20170701'之间;请将您的新问题作为各自的新问题发布,我们将很乐意提供帮助。同时,如果它对你有帮助,可以考虑接受这个答案。同时回答你最近的后续问题:在这种情况下,你似乎不在乎时间,所以没有必要去逃避一些不会被使用的东西:o SELECT DISTINCT geoNetwork.country FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`, unnest(hits) hit WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' and hit.hour > 11;,sql,google-bigquery,standards,Sql,Google Bigquery,Standards,我正试图用标准SQL查看在中午12点到午夜12点之间向谷歌分析发送点击量的国家列表 我正在使用hits.hour from,但出现以下错误: 无法访问类型为ARRAY的值上的字段hour您可以使用以下方法修复语法: #standardSQL SELECT DISTINCT geoNetwork.country FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN

我正试图用标准SQL查看在中午12点到午夜12点之间向谷歌分析发送点击量的国家列表 我正在使用hits.hour from,但出现以下错误:
无法访问类型为ARRAY的值上的字段hour您可以使用以下方法修复语法:

#standardSQL
SELECT DISTINCT geoNetwork.country
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' 
AND
hits.hour > '11'
但这并不是你想要的。相反,您需要unnest,因为hits是一个数组。因此:

SELECT DISTINCT geoNetwork.country
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' AND
      hits[offset(0)].hour > 11

还请注意,小时似乎是一个数字,因此单引号是不合适的。

您可以使用以下方法修复语法:

#standardSQL
SELECT DISTINCT geoNetwork.country
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' 
AND
hits.hour > '11'
SELECT DISTINCT geoNetwork.country
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
     unnest(hits) hit
WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' and
      hit.hour > 11;
但这并不是你想要的。相反,您需要unnest,因为hits是一个数组。因此:

SELECT DISTINCT geoNetwork.country
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' AND
      hits[offset(0)].hour > 11

还要注意的是,小时似乎是一个数字,因此单引号是不合适的。

Hi Mikhail,另一位用户[Gordon]也对该线程发表了评论。我读过关于UNNEST函数的书,并且有点了解它将数组中的所有点击转换成separte行,这很有意义,因为GA会话是由点击组成的。在您的回答中,您有并存在从…中选择1,您能解释一下这一点查询的作用吗?THx@AdilK-在我的解决方案中,每一行都是在小时数>11的情况下评估是否存在hit。所以每一行要么生存要么不生存,都基于where子句,DISTINCT涉及的行数与根行的原始计数相同。在Gordon的解决方案中,所有行在其各自的命中上交叉连接,然后小时数大于11的行被纳入最终的DISTINCT。当然,最终的结果是一样的,但通过我的解决方案,它的路径更短。谢谢。有一个后续问题:我现在尝试求transactionRevenue的总和…在一个会话中,一个用户可以有多个会话…在这种情况下,为什么不需要最不合适的操作员?选择SUMtotals.totalTransactionRevenue FROM bigquery public data.google_analytics_sample.ga_sessions_*其中_TABLE_后缀介于'20170701'和'20170701'之间;请将您的新问题作为各自的新问题发布,我们将很乐意提供帮助。同时,如果它对你有帮助,可以考虑接受这个答案。同时,回答您最近的后续问题:在这种情况下,您似乎不在乎时间,因此不需要取消一些不会使用的东西:oHi Mikhail,另一位用户[Gordon]也对该线程发表了评论。我读过关于UNNEST函数的书,并且有点了解它将数组中的所有点击转换成separte行,这很有意义,因为GA会话是由点击组成的。在您的回答中,您有并存在从…中选择1,您能解释一下这一点查询的作用吗?THx@AdilK-在我的解决方案中,每一行都是在小时数>11的情况下评估是否存在hit。所以每一行要么生存要么不生存,都基于where子句,DISTINCT涉及的行数与根行的原始计数相同。在Gordon的解决方案中,所有行在其各自的命中上交叉连接,然后小时数大于11的行被纳入最终的DISTINCT。当然,最终的结果是一样的,但通过我的解决方案,它的路径更短。谢谢。有一个后续问题:我现在尝试求transactionRevenue的总和…在一个会话中,一个用户可以有多个会话…在这种情况下,为什么不需要最不合适的操作员?选择SUMtotals.totalTransactionRevenue FROM bigquery public data.google_analytics_sample.ga_sessions_*其中_TABLE_后缀介于'20170701'和'20170701'之间;请将您的新问题作为各自的新问题发布,我们将很乐意提供帮助。同时,如果它对你有帮助,可以考虑接受这个答案。同时回答你最近的后续问题:在这种情况下,你似乎不在乎时间,所以没有必要去逃避一些不会被使用的东西:o
SELECT DISTINCT geoNetwork.country
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`,
     unnest(hits) hit
WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170701' and
      hit.hour > 11;