我很困惑为什么列标题会针对以下两个查询以不同方式输出。
select fullVisitorId , visitNumber, visitId, visitStartTime, date,totals.visits, totals.hits, totals.pageviews, totals.timeOnSite
from 33959632.ga_sessions_20170124
返回前7列,其名称如下。
visitorId | visitNumber | visitId | visitStartTime |日期| totals.visits | totals.hits
SELECT fullVisitorId , visitNumber, visitId, visitStartTime, date,
totals.visits, totals.hits FROM `33959632.ga_sessions_20170101`
以下结果现在删除了总计记录前缀。
fullVisitorId | visitNumber | visitId | visitStartTime |日期| 访问|点击
为什么Total已从Visits&点击?我们如何在结果中保留前缀名称(除了手动命名列)。
答案 0 :(得分:2)
我认为在GA中 - 每个模式 - totals
字段不是数组,而只是记录
所以,请尝试以下
#standardSQL
SELECT
fullVisitorId,
visitNumber,
visitId,
visitStartTime,
date,
STRUCT(totals.visits, totals.hits, totals.pageviews, totals.timeOnSite) AS totals
FROM `33959632.ga_sessions_20170101`
为什么Total已从Visits&点击?
在SELECT列表中,如果表达式没有显式别名,BigQuery会根据以下规则分配隐式别名。
您可以阅读有关Implicit aliases
的更多信息您可以阅读有关Aliases的更多信息
答案 1 :(得分:1)
如果在标准SQL中选择字段路径,则结果将具有路径中叶字段的类型。如果要生成一个镜像原始结构的结构,可以执行以下操作:
#standardSQL
SELECT
fullVisitorId,
visitNumber,
visitId,
visitStartTime,
date,
STRUCT(
totals.visits,
totals.hits,
totals.pageviews,
totals.timeOnSite) AS totals
FROM 33959632.ga_sessions_20170124;
这将返回结果中结构中totals
的指示字段。