缺少记录前缀



我很困惑为什么以下两个查询的列标题输出不同。

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字段。

最新更新