BigQuery SQL 中的 LAG() 函数错误;无法返回滞后的 hits.page.pagePath

2024-01-09

我目前正在尝试在 BigQuery 表中创建一个列,该列仅包含 hist.page.pagePath 的滞后值。对于此示例,假设我的 hit.time 值为 0、513、518、762、991。这些值对应于我创建的 unique_visit_id。每天有数千次唯一访问,每次访问都有不同的点击时间值和行数。

为了帮助进行各种计算,我想向数据框中添加一列,该列仅包含 hits.page.pagePath 列中所有行的滞后值(当 hit.time > 0 时没有关联的滞后值)。请注意,hits.time 是一个重复组,指的是使用以下方法计算的唯一访问 IDCONCAT(fullVisitorId, STRING(visitId)) AS unique_visit_id。因此,我怀疑会涉及像 OVER 这样的命令。我最初的查询使用了以下方法:

SELECT date, LAG(hits.page.pagePath,1), CONCAT(fullVisitorId, STRING(visitId)) AS unique_visit_id, visitId, visitNumber, fullVisitorId, totals.pageviews, totals.bounces, 
hits.page.pagePath, device.deviceCategory, device.browser, device.browserVersion, hits.customVariables.index,
hits.customVariables.customVarName, hits.customVariables.customVarValue, hits.time
FROM (FLATTEN([XXXXXXXX.ga_sessions_20140711], hits.time))
WHERE hits.customVariables.index = 4
ORDER BY unique_visit_id DESC, hits.time ASC
LIMIT 1000;

因此不幸返回了错误:

错误:LAG 是一个分析函数,必须附带 OVER 子句。

作业 ID:XXXXXXXX-XXX:job_zduhuRKgvrgmA7niBzcyb3empwY

我猜测 OVER 会引用CONCAT(fullVisitorId, STRING(visitId)) AS unique_visit_id因为包含相同 unique_visit_id 的每一行代表一次唯一访问中的一次点击。不幸的是,在这里使用 OVER 也会返回错误。


解析函数有一个奇怪的语法......你已经快到了,但你只需要移动ORDER BY条款纳入OVER使用的语句LAG():

SELECT date, LAG(hits.page.pagePath,1) 
  OVER(PARTITION BY unique_visit_id ORDER BY hits.time ASC) as lagged, 
  CONCAT(fullVisitorId, STRING(visitId)) AS unique_visit_id, visitId, 
  ...
FROM (FLATTEN([XXXXXXXX.ga_sessions_20140711], hits.time))
WHERE hits.customVariables.index = 4
LIMIT 1000;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BigQuery SQL 中的 LAG() 函数错误;无法返回滞后的 hits.page.pagePath 的相关文章

  • 从 Google BigQuery 中过滤或替换非英文字符

    我正在从 Google Biqquery 中的查询中提取数据 我通过 python 脚本连接到 Google API 在 python 脚本中执行查询并将查询结果写入 CSV 文件 当我从脚本中执行示例数据 100 行 的查询时 一切看起来
  • BigQuery 无法将字段的“null”解析为 int

    尝试将 csv 文件加载到 bigquery 表中 有些列的类型为 INTEGER 但某些缺失值为 NULL 所以当我使用命令 bq load 加载时 出现以下错误 无法将 null 解析为字段的 int 所以我想知道处理这个问题的最佳解决
  • BigQuery中有新数据时触发云功能

    我想在新数据导入 BigQuery 表时触发 Cloud Function 理想情况下 我想提取已插入的所有行 一列是 ISIN 这可能吗 如何实现 2022 年 6 月更新 第二代 Cloud Functions 支持Eventarc h
  • bigquery 允许的表数量是否有限制

    BigQuery 中可以拥有的表数量有限制吗 我正在尝试创建多个小表以减少查询成本 谢谢 表的数量没有限制 由于查询字符串的长度有 10k 的限制 因此您可能会在查询所有这些内容时遇到问题
  • 如何在 BigQuery 中构建“星级”报告(或迷你图或颜色渐变)

    假设我有以下示例输入 WITH Ratings AS SELECT A name 2 score UNION ALL SELECT B name 0 score UNION ALL SELECT C name 5 score UNION A
  • Bigquery - json_array 来自字段的额外多个元素

    我的表有一个 JSON 字段 如下所示 每个条目中可以有任意数量的评论 entry 1234 comment 6789 seconds 1614864327 nanoseconds 606000000 message hello world
  • Unicode 无法正确翻译从右到左的语言(希伯来语和阿拉伯语)

    下面由 Mikhail Berlyant 提供的 bigquery 代码 再次感谢您 适用于从左到右的语言 例如俄语 但是 只要要翻译的文本中有双引号 它就会在从右到左的语言 例如阿拉伯语和希伯来语 上失败 预期结果应显示所有要翻译的输入文
  • BigQuery 表中可以按小时进行分区吗?

    谷歌文档只讨论日常分区 但是模型中是否有任何东西阻碍人们将分区填充到具有其他时间段 例如 小时或周 的表中 在 小 表中进行分区是否有任何限制或缺点 现在only DAY支持分区表 不支持按小时或按月 有几个对新功能的功能请求 但没有实施时
  • 将带有变量的循环转换为 BigQuery SQL

    我有数千个脚本 其中包括循环数据集并使用变量进行累积 例如 assuming that ids is populated from some BQ table ids 1 2 3 4 5 var1 v1 initialize variabl
  • 写入 BigQuery 时处理卡住

    我正在使用云数据流将数据从 Pub Sub 消息导入到 BigQuery 表 我正在使用 DynamicDestinations 因为这些消息可以放入不同的表中 我最近注意到该进程开始消耗所有资源 并且消息表明该进程被卡住开始显示 Proc
  • 使用 Airflow BigqueryOperator 向 BigQuery 表添加标签

    我必须向 bigquery 表添加标签 我知道可以通过 BigQuery UI 来完成此操作 但如何通过气流运算符来完成此操作 Use case 用于计费和搜索目的 由于多个团队在同一项目和数据集下工作 我们需要将各个团队创建的所有表组合在
  • 如何从 firebase 导出无崩溃的用户?

    我想将有关崩溃和无崩溃用户指标的数据保留在数据库中以供进一步分析 我已经将该项目链接到 BigQuery 但找不到计算方法无崩溃用户BigQuery 中包含的数据价值 是否可以以某种方式导出无崩溃的用户指标 这里是 Fabric Fireb
  • Bigquery:如何声明数组变量并使用 select 语句设置数据?

    我试图在 BigQuery 上声明一个数组变量 但无法在变量中放入 SQL 语句 我找不到任何与此相关的主题 我想将表的所有列名放入变量中 所以我尝试了以下方法 DECLARE my array ARRAY
  • 从 ISO 周中提取日期 (201905) BigQuery

    我需要从 ISO 周数中提取星期日的日期 即 201905 它需要位于 standardSQL 中 因为它将使用不支持旧版本的脚本进行调度 我尝试从 Google Sheets 调整工作公式 但无法弄清楚 Google Sheets 的原始
  • BigQuery - 预定查询更新通知电子邮件

    有没有办法将计划查询通知电子邮件更新为自定义内容 默认情况下 它是创建者的电子邮件 但是 这通常是没有真正电子邮件收件人的服务帐户 例如 通过 terraform 配置 我们将拥有一个服务帐户 我们希望将电子邮件通知目标从 SA 更新为支持
  • 从 Google Apps 脚本运行保存的 bigquery 查询?

    我们经常使用 Google Apps 脚本来运行 BigQuery 查询并将其放入 Google Sheet 中 然而 工作流程很烦人 在 BigQuery 中运行查询 直到正确为止 复制 粘贴到文本编辑器以放入换行斜杠 在应用程序脚本中运
  • 使用 Java 在 BigQuery 中保存 Array

    我正在尝试使用 Spark Big Query 连接器将数据保存到 Big 查询中 假设我有一个如下所示的 Java pojo Getter Setter AllArgsConstructor ToString Builder public
  • 无法访问 Big Query 中类型为 ARRAY> 的字段

    我正在尝试在 BigQuery 上使用标准 SQL 方言 即不是旧版 SQL 运行查询 我的查询是 SELECT date hits referer FROM refresh ga sessions xxxxxx LIMIT 1000 但不
  • 如何在 BigQuery 中将列数据拆分为每 6 个字符并形成行

    我需要将列数据拆分为每 6 个字符 Input col1 col2 d1 X11 F11 1000KG123456 d2 X22 F22 3500Kabcdefgh Expecting col1 col2 d1 X11 d1 F11 d1
  • “--view_udf_resource”是否损坏?

    我想在视图中引用 UDF 根据 BigQuery 文档 bq 帮助 mk 以及这篇文章如何创建使用用户定义函数的 BigQuery 视图 https stackoverflow com questions 34167356 how do i

随机推荐