我正在尝试将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) 如何在BigQuery中过滤计数?
在Postgres中,我正在执行以下操作:
COUNT(*) FILTER (WHERE event_date>('{{ report_date }}'::date-INTERVAL '2 WEEK'))
Run Code Online (Sandbox Code Playgroud)
尽管这在BigQuery中不起作用。最好的选择是什么?我使用标准SQL。
我一直在使用Google BigQuery的遗留SQL一段时间,当我需要数字Pi时,有一个方便的PI()函数:
SELECT PI()
Run Code Online (Sandbox Code Playgroud)
但在标准SQL中,此功能不再存在.我一直无法在文档中找到等效函数.在标准SQL中拥有等效PI()函数的最简单,最准确的方法是什么?
我正在尝试将在大查询中捕获的访问开始时间变量转换为可读日期或最好是时间戳。
我正在使用标准SQL。
我尝试使用sec_to_timestamp,但我相信这仅适用于BQ中的旧版SQL。
Google文档讨论了从日期表达式和字符串表达式转换为时间戳的方法,但是访问开始时间是一个整数。
https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators
我查看了以下链接,并尝试了其中的代码,但收到错误“找不到函数:整数”
大查询-Google Analytics-首次访问和购买之间的时间差
关于BQ捕获的日期/时间的任何其他建议将不胜感激。
谢谢
在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) 新来的。随着时间的推移,我试图获得每日和每周的活跃用户。他们有 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) 我正在使用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) 我正在尝试(未成功)将 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) 我想获取 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
我创建了一个表,其中包含一对 ID 和每个 ID 的坐标,以便我可以计算它们之间的成对余弦相似度。
坐标的维度数目前为 128,但它可能会有所不同。但是在同一个表中,一对 ID 的数字维度总是相同的。
coord1和coord2是具有浮点值的重复字段(数组)。
有没有办法计算它们之间的余弦相似度?
我的预期输出将包含三列id1,id2和cosine_similarity。