我使用的是v0.23,并尝试使用参数化查询。我正在关注作为参考。
当我在没有参数的情况下运行查询时,一切正常。然而,为了使它们成为动态的,当我使用数组参数时,我得到了错误。例如,当我运行这个查询时
bigquery.query("SELECT COUNT(*) FROM oven.sensor_counts WHERE _PARTITIONTIME = TIMESTAMP('2016-04-04') AND sensor_id IN (@sensor_ids)", params: { sensor_ids: ['48-6', '48-2&
我正在尝试使用npm模块@google-cloud/bigquery运行参数化查询。如下所示: SELECT * FROM myTable WHERE id IN (@ids); 我不知道bigQuery是如何期望参数ids格式化的。 我的options.params看起来像这样: { ids: '"1234", "4567"'} 但是我没有得到任何结果。我知道有结果,我可以在bigquery中看到它们,如果我删除参数并只注入字符串,就可以很好地工作。 这看起来很简单,但我不明白为什么它不能工作,谁愿意帮助我? 提前谢谢你
我正在尝试从谷歌BigQuery的GitHub公共数据中获取一些统计数据。 当我在sample数据库上运行这个查询时,它工作得很好: SELECT lang.name, COUNT(1) commits
FROM `bigquery-public-data.github_repos.sample_commits` c
join `bigquery-public-data.github_repos.languages` l on l.repo_name = c.repo_name,
unnest (l.language) as lang
GROUP BY lang.name
ORDER BY
我有一个工作正常的特定查询。问题是该查询的一部分是需要从文件中读取的字符串。对每个字符串的查询会产生6个输出。我需要该文件的所有结果的联合,以便最终结果是一个6倍数量的字符串的表。我可以用Python来读取这个文件。
我已经尝试过使用参数化查询。它们中的每一个都只返回基于字符串的6行。
我的大部分Python代码都基于BigQuery的文档。
query = """
SELECT pet_id, age, name
FROM `myproject.mydataset.mytable`
WHERE name = @name
AND spec
我有一个表,看起来像这样: text | STRING
concepts | RECORD
concepts.name | STRING
[...] 因此,一行可能如下所示: "This is a text about BigQuery and how to split records into columns. "
SQL
BigQuery
Questions 我想将其转化为: text, concepts_1, concepts_2, concepts_3 // The names are not important
"Th
是否有可能在BigQuery中执行类似的操作?
SELECT country, id FROM
-- possible to in-line this, with an array or struct even?
[['us', 1], ['ca',2]] AS country (country, id)
或者有更好的方法来做?目前,我这样做的方式如下,但我想看看是否可以将其内联到FROM中:
WITH country AS (
SELECT 'us' AS country, 1 as id UNION ALL
我得到了以下BigQuery模式,并且我正在尝试更新event_dim.date字段:
我使用标准的SQL和新的BigQuery DML尝试了以下查询:
UPDATE `sara-bigquery.examples.app_events_20170113`
SET event_dim.date = '20170113'
WHERE true
但是得到了这个错误:
Error: Cannot access field date on a value with type ARRAY<STRUCT<name STRING, params ARRAY<STR
您可能认为,我在BigQuery中执行的操作很简单;我正在尝试更新BigQuery表中的嵌套字段,该字段是360导出的结果。
以下是我的疑问:
#standardSQL
UPDATE `dataset_name`.`ga_sessions_20170705`
SET hits.eventInfo.eventLabel = 'some string'
WHERE TRUE
但我得到了一条错误信息:
Error: Cannot access field eventInfo on a value with type ARRAY<STRUCT<item STRUCT<
我尝试了以下查询:
SELECT STRING_AGG(inputs.addresses) as stringAgg,
FROM `bigquery-public-data.crypto_bitcoin.transactions`
JOIN UNNEST (inputs) AS inputs
GROUP BY Date(block_timestamp)
但是,我得到以下错误:
不匹配参数类型的聚合函数STRING_AGG签名:数组。支持的签名: STRING_AGG(STRING);STRING_AGG(STRING,STRING);STRING_AGG(字节);STRING_AGG(字节,
你好,我试图获取我的查询日志成本,我得到了总金额,但是当我试图按数据集中分解它时,我得到了以下错误:
无法访问类型为datasetId的值上的字段ARRAY>。
这是我想要运行的查询:
WITH
data AS (
SELECT
protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent AS jobCompletedEvent,
(
SELECT
ARRAY_TO_STRING((
SELECT
ARRAY_AGG(datasetId)
我试图使用如下数组对BigQuery列进行分组:
with test as (
select 1 as A, 2 as B
union all
select 3, null
)
select *,
[A,B] as grouped_columns
from test
但是,这是行不通的,因为B行2列中有一个null值。
事实上,这也是行不通的:
select [1, null] as test_array
然而,当说应该允许Nulls的时候。
在BigQuery中,数组是由相同数据类型的零个或多个值组成的有序列表。您可以构造简单数据类型(如INT64 )和复
我正在尝试选择BigQuery中的event_dim.date,但由于出现错误而无法实际访问它
Error: Cannot access field date on a value with type ARRAY<STRUCT<date STRING, name STRING, params ARRAY<STRUCT<key STRING, value STRUCT<string_value STRING, int_value INT64, float_value FLOAT, ...>>>, ...>> at [1:18]
我的问题
目前,我知道如何使用BigQuery Python API在表单中从<company_warehouse>.<table>进行查询
SELECT id, field1, field2, ...
FROM '<company_warehouse>.<table>'
WHERE field1==...
我想要做的是执行上面的查询,但是添加一个限制,只搜索全部数据的一个子集,限制为我在Python中拥有的ID的大集合(列表)(列表或pandas Series)。即,与添加一个子句WHERE id IN (id1,...,idn)相同,但
我试图用下面的查询更新bigquery中的一个列。但是它正在生成BigQuery错误-- Scalar子查询产生了多个元素,这个子查询也专门针对这个子查询(Select* from (Select to_json_String(JSON_EXTRACT_SCALAR(c.raw,‘$.C360ServiceError.serviceName’,真))从表c作为c.trace_id=a.trace_id)。你能帮帮我吗
完整的查询是:
更新tableabc a a.Link=CONCAT("a",(选择拆分(TopicName,‘/’)偏移量(1 ),从tableabc中选择b作
假设我得到一个带一个字段的临时表是一个数组,如何将它转换为多行?
使用PostgreSQL,这可以通过UNNEST 实现。
WITH x AS (SELECT ARRAY[1,3,2] AS arr)
SELECT UNNEST(arr) FROM x
在BigQuery中运行相同的查询,在3:8处运行语法错误:意外关键字UNNEST
似乎在BigQuery中,UNNEST只能放在FROM子句之后,
然后我尝试了这些:
WITH x AS (SELECT ARRAY[1,3,2] AS arr)
SELECT * FROM UNNEST(x)
这一条说UNNEST不能在3:22的表上应用;
我正在使用Bigquery,并且我有一个包含数组的数据集,我想在其中提取第一次找到指定元素的索引。我在Bigquery中找不到一个函数来实现我想要的功能。Dataprep有arrayindexof函数可以做到这一点,但是在写这篇文章的时候,Bigquery中还没有这个函数。https://cloud.google.com/dataprep/docs/html/ARRAYINDEXOF-Function_136155116 如果arrayindexof存在于Bigquery中,下面是我们如何使用它。 select arrayindexof(metric, 'b') as ind
在查询Bigquery时,我有两种处理表中数组的方法。第一个是使用逗号联接和UNNEST,另一个是使用嵌入式SELECT。在每一种情况下,我将根据一些标准从数组中提取一个条目。我修改了使用数组的BigQuery示例,以显示下面和这个链接的含义:
#standardSQL
WITH races AS (
SELECT "800M" AS race,
[STRUCT("Rudisha" as name),
STRUCT("Rotich" as name),
STRUCT("Berian" as name
Postgres有一个简单的函数来实现这一点,只要使用函数,我们就可以找到最频繁的值。谷歌的Bigquery中有类似的东西吗?
如何在Bigquery中编写这样的查询?
select count(*),
avg(vehicles) as mean,
percentile_cont(0.5) within group (order by vehicles) as median,
mode() within group (order by vehicles)
我对Bigquery非常陌生,我想在一个查询中卸载2个表。
我试图在下面的代码中查询,但它没有工作。它给了我一条消息:“这个查询没有返回任何结果”。
SELECT
timestamp AS Date,
A.key,
B.name
FROM `pms_table_request_log.partners_request_log_*`,
UNNEST(jsonPayload.response.body.channels) AS A,
UNNEST(jsonPayload.response.body.data.rows) AS B;
我希望键和名称是不嵌套
我从BigQuery上的开放数据Github数据创建了一个BigQuery数据集。
我现在将这些数据(两个不同的表)作为数据帧导入到pandas中,它工作得很好。当我在join列上调用'type‘时,它们都显示为pd.Series。
下面是我的脚本:
from google.cloud import bigquery
from google.oauth2 import service_account
from google.cloud import bigquery_storage_v1beta1
from sklearn.model_selection import train_te
碰巧我在BigQuery的一个字段中有一个字符串化的数组
'["a","b","c"]'
我想把它转换成BigQuery能理解的数组。我希望能够在标准SQL中做到这一点:
with k as (select '["a","b","c"]' as x)
select unnested_x from k, unnest(x) unnested_x
我试过JSON_EXTRACT('["a","b","c"]'