我很困惑为什么以下两个查询的列标题输出不同。
select fullVisitorId , visitNumber, visitId, visitStartTime, date,totals.visits, totals.hits, totals.pageviews, totals.timeOnSite
from 33959632.ga_sessions_20170124
返回前 7 列,其名称如下。
访客ID | 访问编号 | 访问ID | 访问开始时间 | 日期 |总访问量 | 总点击量
SELECT fullVisitorId , visitNumber, visitId, visitStartTime, date,
totals.visits, totals.hits FROM `33959632.ga_sessions_20170101`
下面的结果现在删除了"总记录"前缀。
fullVisitorId | visitNumber | visitId | visitStartTime | date |访问 | 点击
为什么道达尔已从访问量和点击量中删除? 我们如何在结果中保留前缀名称(除了手动命名列)。
我认为在 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`
为什么道达尔已从访问量和点击量中删除?
在 SELECT 列表中,如果存在没有显式别名的表达式,BigQuery 将根据以下规则分配隐式别名。
- 对于标识符,别名是标识符。例如,SELECT abc 表示 AS abc。
- 对于路径表达式,别名是路径中的最后一个标识符。例如,SELECT abc.def.ghi意味着AS ghi。
- 对于使用"点"成员字段访问运算符的字段访问,别名是字段名称。例如,SELECT (struct_function()).fname 表示 AS fname。
您可以阅读有关隐式别名的更多信息
您可以阅读有关别名的更多信息
如果在标准 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
字段。