我在 BigQuery 中匹配正则表达式时遇到问题。我有以下代码行试图识别用户代理:
when regexp_contains((cs_user_agent), '^AppleCoreMedia\/1\.(.*)iPod') then "iOS App - iPod"
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因,BigQuery 似乎不喜欢转义序列,并且出现了我无法弄清楚的错误:
Syntax error: Illegal escape sequence: \/ at [4:63]
Run Code Online (Sandbox Code Playgroud)
这段代码在我使用的正则表达式验证器中运行良好,但 BigQuery 对它不满意,我不知道为什么。在此先感谢您的帮助
在主题中.使用standard-sql时,从存储为整数的时间戳中提取小时(或其他日期部分)的时间比EXTRACT(HOUR FROM TIMESTAMP_SECONDS(visitStartTime))更短吗?
我正在使用BigQuery,我需要计算数据集列的第25,第50和第75百分位数.
例如,如何使用BigQuery和STANDARD SQL获取上述数字.我查看了PERCENT_RANK,RANK和NTILE函数,但我似乎无法破解它.
这里有一些代码可以指导我
感谢帮助!
percentile google-bigquery google-cloud-platform bigquery-standard-sql
Bigquery大师的一个快速问题.
以下是使用standardSQL从Bigquery中的时间戳中提取日期的两种方法
#standardSQL
#1
DATE(TIMESTAMP_MILLIS(CAST((timestamp) AS INT64)))
#2
EXTRACT(DATE FROM TIMESTAMP_MILLIS(timestamp))
Run Code Online (Sandbox Code Playgroud)
哪一个更可取,为什么?谢谢!
我有一张看起来像这样的表:
我正在寻找一个表格,它给出了字段中元素的频率计数l_0, l_1, l_2, l_3。
例如,输出应如下所示:
| author_id | year | l_o.name | l_0.count| l1.name | l1.count | l2.name | l2.count| l3.name | l3.count|
| 2164089123 | 1987 | biology | 3 | botany | 3 | | | | |
| 2595831531 | 1987 | computer science | 2 | simulation | 2 | computer simulation | 2 | mathematical model | 2 |
Run Code Online (Sandbox Code Playgroud)
编辑:
在某些情况下,数组字段可能有不止一种类型的元素。例如l_0可能是 ['biology', 'biology', 'geometry', 'geometry']. 在这种情况下,输出为字段l_0, l_1, l_2, …
我正在尝试使用 BigQuery 中的标准 SQL 将一列 base64 值解散为解码的字符串,但到目前为止还没有任何运气。
我发现有一个函数叫做FROM_BASE64()但是 -
答:文档使它看起来好像将 BASE64 转换为 BYTES,这意味着我需要额外的转换。
B.FROM_BASE64()甚至不工作 - 查询运行,但结果始终与我输入的编码字符串完全相同。
SELECT FROM_BASE64('aGVsbG8tc3RhY2tvdmVyZmxvdw==')
Run Code Online (Sandbox Code Playgroud)
返回
"aGVsbG8tc3RhY2tvdmVyZmxvdw=="
Run Code Online (Sandbox Code Playgroud)
这里最好的方法是什么?
我正在尝试将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。
我正在尝试使用ExceptBigquery 中的现有子句。请在下面找到我的查询
select * EXCEPT (b.hosp_id, b.person_id,c.hosp_id) from
person a
inner join hospital b
on a.hosp_id= b.hosp_id
inner join reading c
on a.hosp_id= c.hosp_id
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用了 3 个表。所有 3 个表都有hosp_id列,所以我想删除重复的列,即b.hosp_id和c.hosp_id。同样,我也想删除b.person_id列。
当我执行上述查询时,出现如下所示的语法错误
Syntax error: Expected ")" or "," but got "." at [9:19]
Run Code Online (Sandbox Code Playgroud)
请注意,我在 inExcept子句中使用的所有列都存在于所使用的表中。附加信息是所有使用的表都是使用with子句创建的临时表。当我通过选择感兴趣的列手动执行相同操作时,它工作正常。但是我有几列,无法手动执行此操作。
你能帮我吗?我正在尝试学习 Bigquery。您的意见会有所帮助