标签: bigquery-standard-sql

展平Google BigQuery中的多个重复字段

我正在尝试将Big Query中重复字段中的数据弄平。我已经看过这个查询BigQuery中的多个重复字段的方法,但是我似乎无法使它正常工作。

我的数据如下所示:

[
  {
    "visitorId": null,
    "visitNumber": "15",


    "device": {
      "browser": "Safari (in-app)",
      "browserVersion": "(not set)",
      "browserSize": "380x670",
      "operatingSystem": "iOS",
    },
    "hits": [
      {
        "isEntrance": "true",
        "isExit": "true",
        "referer": null,
        "page": {
          "pagePath": "/news/bla-bla-bla",
          "hostname": "www.example.com",
          "pageTitle": "Win tickets!!",
          "searchKeyword": null,
          "searchCategory": null,
          "pagePathLevel1": "/news/",
          "pagePathLevel2": "/bla-bla-bla",
          "pagePathLevel3": "",
          "pagePathLevel4": ""
        },
        "transaction": null
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

我想要的是hits-page重复字段中的字段。

例如,我想获取hits.page.pagePath(值为“ / news / bla-bla-bla”)

我已尝试使用以下查询,但出现错误:

SELECT 
visitorId,
visitNumber,
device.browser,
hits.page.pagePath
FROM 
`Project.Page`
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

Error: Cannot …
Run Code Online (Sandbox Code Playgroud)

google-bigquery bigquery-standard-sql legacy-sql

3
推荐指数
1
解决办法
2140
查看次数

COUNT(*)FILTER(WHERE ...在BigQuery中

如何在BigQuery中过滤计数?

在Postgres中,我正在执行以下操作:

COUNT(*) FILTER (WHERE event_date>('{{ report_date }}'::date-INTERVAL '2 WEEK'))
Run Code Online (Sandbox Code Playgroud)

尽管这在BigQuery中不起作用。最好的选择是什么?我使用标准SQL。

sql google-bigquery bigquery-standard-sql

3
推荐指数
2
解决办法
2382
查看次数

BigQuery:标准SQL中的PI()

我一直在使用Google BigQuery的遗留SQL一段时间,当我需要数字Pi时,有一个方便的PI()函数:

SELECT PI()
Run Code Online (Sandbox Code Playgroud)

但在标准SQL中,此功能不再存在.我一直无法在文档中找到等效函数.在标准SQL中拥有等效PI()函数的最简单,最准确的方法是什么?

pi google-bigquery bigquery-standard-sql

2
推荐指数
1
解决办法
921
查看次数

如何在Big Query中将访问开始时间转换为可读的人类日期或时间戳?

我正在尝试将在大查询中捕获的访问开始时间变量转换为可读日期或最好是时间戳。

我正在使用标准SQL。

我尝试使用sec_to_timestamp,但我相信这仅适用于BQ中的旧版SQL。

Google文档讨论了从日期表达式和字符串表达式转换为时间戳的方法,但是访问开始时间是一个整数。

https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators

我查看了以下链接,并尝试了其中的代码,但收到错误“找不到函数:整数”

大查询-Google Analytics-首次访问和购买之间的时间差

关于BQ捕获的日期/时间的任何其他建议将不胜感激。

谢谢

sql timestamp google-bigquery bigquery-standard-sql

2
推荐指数
1
解决办法
4425
查看次数

如何在BigQuery中重复字段进行分组

在BigQuery中,我创建了一个包含以下模式的表

id                  INTEGER NULLABLE    
visits              INTEGER NULLABLE    
dimensions          RECORD  REPEATED    
dimensions.value    STRING  
dimensions.key      STRING  
Run Code Online (Sandbox Code Playgroud)

如何通过分组设备和状态值来获得总和(访问)?

示例数据:

{"id": 1, visits: 100, "dimensions": [{"key":"device","value":"mobile"}, {"key":"state","value":"CA"}]}
{"id": 1, visits: 500, "dimensions": [{"key":"device","value":"desktop"}, {"key":"state","value":"CA"}]}
{"id": 1, visits: 200, "dimensions": [{"key":"device","value":"mobile"}, {"key":"state","value":"NY"}]}
{"id": 2, visits: 100, "dimensions": [{"key":"device","value":"mobile"}, {"key":"state","value":"CA"}]}
{"id": 2, visits: 500, "dimensions": [{"key":"device","value":"desktop"}, {"key":"state","value":"CA"}]}
{"id": 2, visits: 200, "dimensions": [{"key":"device","value":"mobile"}, {"key":"state","value":"NY"}]}
{"id": 2, visits: 780, "dimensions": [{"key":"device","value":"desktop"}, {"key":"state","value":"NY"}]}
Run Code Online (Sandbox Code Playgroud)

我想在输出中输入id,device,state,sum(visits).

我可以通过使用以下查询的单个维度来执行组,但不知道如何为多个维度执行此操作.

SELECT id,d.value, sum(visits) FROM dataset.tabe_name,UNNEST(dimensions) as d where d.key = "device" group by …
Run Code Online (Sandbox Code Playgroud)

google-bigquery bigquery-standard-sql

2
推荐指数
1
解决办法
1905
查看次数

SQL - 不等左连接 BigQuery

新来的。随着时间的推移,我试图获得每日和每周的活跃用户。他们有 30 天的时间才能被视为不活跃。我的目标是创建可以按 user_id 拆分的图表,以显示群组、地区、类别等。

我创建了一个日期表来获取该时间段的每一天,并且我有一个简化的订单表,其中包含我需要计算的基本信息。

我正在尝试使用以下 SQL 查询执行 Left Join 以按日期获取状态:

WITH daily_use AS (
        SELECT
          __key__.id AS user_id
          , DATE_TRUNC(date(placeOrderDate), day) AS activity_date
        FROM `analysis.Order`
        where isBuyingGroupOrder = TRUE 
          AND testOrder = FALSE
        GROUP BY 1, 2
 ),
dates AS (
        SELECT DATE_ADD(DATE "2016-01-01", INTERVAL d.d DAY) AS date
        FROM
          (
           SELECT ROW_NUMBER() OVER(ORDER BY __key__.id) -1 AS d
           FROM `analysis.Order`
           ORDER BY __key__.id
           LIMIT 1096
          ) AS  d
        ORDER BY 1 DESC
      )

SELECT
      daily_use.user_id
    , wd.date …
Run Code Online (Sandbox Code Playgroud)

sql google-bigquery bigquery-standard-sql

2
推荐指数
1
解决办法
2万
查看次数

在BigQuery中查询点击量和自定义维度?

我正在使用BigQuery中的GoogleAnalytics数据。我想输出2列:特定事件操作(点击)和自定义维度(基于会话)。所有这些,使用标准SQL。我不知道该怎么做。文档也没有帮助。请帮我。这是我正在尝试的:

SELECT
  (SELECT MAX(IF(index=80, value, NULL)) FROM UNNEST(customDimensions)) AS is_app,
  (SELECT hits.eventInfo.eventAction) AS ea
FROM  
  `table-big-query.105229861.ga_sessions_201711*`, UNNEST(hits) hits
WHERE 
  totals.visits = 1
  AND _TABLE_SUFFIX BETWEEN '21' and '21'
  AND EXISTS(SELECT 1 FROM UNNEST(hits) hits
    WHERE hits.eventInfo.eventCategory = 'SomeEventCategory'
  )
Run Code Online (Sandbox Code Playgroud)

sql google-analytics google-bigquery bigquery-standard-sql

2
推荐指数
1
解决办法
5609
查看次数

如何在 BigQuery SQL 中将字符串列拆分为多行单个单词和单词对?

我正在尝试(未成功)将 Google BigQuery 中的字符串列拆分为包含所有单个单词和所有单词对(彼此相邻并按顺序排列)的行。我还需要维护 IndataTable 中单词的 ID 字段。两个记录集都有 2 列。

IndataTable as IDT
ID WordString
1 苹果香蕉梨
2 胡萝卜
3 蓝红绿黄

OutdataTable 作为 ODT
ID WordString
1 苹果
1 香蕉
1 梨
1 苹果香蕉
1 香蕉梨
2 胡萝卜
3 蓝色
3 红色
3 绿色
3 黄色
3 蓝色红色
3 红色绿色
3 绿色黄色(仅对彼此相邻)

这可能在大查询 SQL?

编辑/添加:
这是我迄今为止所拥有的,可将其拆分为单个单词。我真的很难弄清楚如何将其扩展为单词对。我不知道是否可以对此进行修改,或者我完全需要一种新方法。

SELECT ID, split(WordString,' ') as Words
FROM (
  select * 
     from 
     (select ID, WordString from IndataTable)
)
Run Code Online (Sandbox Code Playgroud)

google-bigquery bigquery-standard-sql legacy-sql

2
推荐指数
1
解决办法
2084
查看次数

如何运行查询以获取过去 12 个月的结果 (BigQuery)

我想获取 Big Query 表中特定 ID 过去 12 个月的记录。我从原始时间戳列中提取了月份和年份作为单独的列。我尝试使用 date_add() 和 date_diff() 但我遇到了一些错误。我的数据集是这样的:

Month Year MonthName    ID
8     2018   August      1
9     2018   September   2
9     2017   September   3
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

sql google-bigquery google-cloud-platform bigquery-standard-sql

2
推荐指数
1
解决办法
7346
查看次数

Bigquery中一对数组之间的余弦相似度

我创建了一个表,其中包含一对 ID 和每个 ID 的坐标,以便我可以计算它们之间的成对余弦相似度。

桌子看起来像这样在此处输入图片说明

坐标的维度数目前为 128,但它可能会有所不同。但是在同一个表中,一对 ID 的数字维度总是相同的。

coord1coord2是具有浮点值的重复字段(数组)。

有没有办法计算它们之间的余弦相似度?

我的预期输出将包含三列id1id2cosine_similarity

google-bigquery bigquery-standard-sql

2
推荐指数
1
解决办法
667
查看次数