我有这个SQL代码,必须转换为BigQuery。
listagg(lov.value, ';') WITHIN GROUP (ORDER BY lov.value) disc.name
我发现可以用string_agg()或array_agg()替换listagg,但不知道如何转换整个过程。有小贴士吗?
我喜欢找到不同的元素,并将它们排列在字符串中,用标准的SQL(BigQuery)用逗号分隔。
我已经有了一根绳子,就像:
B,A,A,D,C,B
我喜欢产生:
A、B、C、D
我试过使用STRING_AGG函数。
SELECT STRING_AGG(DISTINCT split(str,","), "," ORDER BY str ASC ) AS string_agg
FROM UNNEST ( [(select f0_ from temp3 )]) AS str
我知道错误:
参数类型的聚合函数STRING_AGG没有匹配的签名:数组,
我希望使用BigQuery生成表,并将每个独立id的所有值添加到一行中。
示例:
id label
000756f4-1af2-439b-b607-ce7384a6b8ee fast
000756f4-1af2-439b-b607-ce7384a6b8ee streaming
000756f4-1af2-439b-b607-ce7384a6b8ee other
0007bac4-1bed-4bf0-8b55-d21216723ef5 issue
0
我在bigquery中工作,用户处于多个拆分测试中(下面是屏幕快照--对于每个不同的拆分测试,都使用firebase_exp_%格式创建了一个firebase_exp_% )。
我想要创建一个用相应的user_pseudo_id聚合所有测试的查询。
因此,预期产出将是:
我试过了,
select
user_pseudo_id,
string_agg((select key from unnest(user_properties) where key like 'firebase_exp_%' ) as expagg from bigquery_e
我想使用bigquery将多行连接成单行
我有一张这样的桌子
A | B | C | D |
09-10-2019 | 1 | math | social |
09-10-2019 | 1 | math | science |
09-10-2019 | 1 | math | science |
我想要这样的结果表
A | B | C | D |
09-10-2019 | 1 |
我有一个表,看起来像这样: 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中,我需要用一个字符串填充字段,该字符串包含客户购买的最后五个独特的产品。我以前使用过STRING_AGG函数,但没有排序和区分,这就是我遇到问题的地方。因此,我正在尝试以下操作(如果删除了DISTINCT,就可以这样做):
SELECT ps.customerID, STRING_AGG( DISTINCT ps.productId ORDER BY ps.orderDate DESC LIMIT 5 ) AS lastFiveProducts
FROM view.purchases AS ps
WHERE ps.market = 'SE'
GROUP
我在下面的表格中尝试查找给定id的array set。我知道在Hive中可以使用collect_set,但我想知道在BigQuery中它的等价物是什么。我正在使用Standard SQL。 下面是我的问题 with temp as (
select "1" as id, "a" as source_field
union all
select "1" as id, "b" as source_field
union all
select "1" as id, "b" as source_fiel
我在google bigquery中运行这个查询 SELECT rep.key.id as id, te.cmnt as comment
FROM `table` rep, UNNEST(tre) as te
WHERE u_id LIKE 'test'
ORDER BY cts DESC 我得到了这个 Id comment
---------------------------------
5165356444286976 HEloo
5165356444286976 TEST
5165356444286976 我想
我有一张桌子
user device minutes
==== ====== =======
ben phone 1.9
ben tablet 2.3
anna phone 1.6
我想按用户将设备使用打包成json字符串,如下所示:
user json
==== =====
ben {"phone":1.9, "tablet":2.3}
anna {"phone":1.6, "tablet":2.3}
我如何在bigquery中做到这一点?
在bigquery中,如果我们对构造json输出感兴趣,通常可以在提前知道键时为json对象使用struct。
SELECT TO_JSON_STRING(STRUCT(key1))
FROM (SELECT "val1" as key1 UNION ALL
SELECT "val2" as key1)
Result
{"key1":"val1"}
{"key1":"val2"}
但是在键是动态的情况下,我们确实需要一个映射类型,类似于
例如
SELECT *
FROM (SELEC
下面是我的问题所在的部分: string_agg(product_type, "|" order by product_type desc) over(partition by email, processed_date) as full_basket 我在订购string_agg时遇到了问题。问题是,一个“篮子”显示"product_a | product_b“,另一个可能显示"product_b | product_a",这是完全相同的。 当我运行这个查询时,BigQuery给出了以下错误:“14:1的分析函数不支持ORDER BY in argu
我要让
生成如下所示的结果,以创建CSV。该查询需要显示属于同一个SKU的所有值、Familia、和,这些值都是逗号分隔的。
SKU;FAMILIA;ANO
203939393;FAMILIA COROLLA, FAMILIA CBU, FAMILIA HILUX;2008,2009,2010
我正在使用BIGQUERY并尝试这个函数
SELECT FORMAT("%T", ARRAY_AGG(x limit 100)) AS array_agg
FROM `Toyoparts.csv_compatibilidade` AS x
但它只是形成了一个巨大的阵列。如果有
我需要使用Google平台来编写我的SQL代码。我目前编写SQL查询的一个问题是,没有太多可供选择的连接字符串。
例如,如果我的数据库是这样的:
ID Location
1 NY
1 TN
1 NC
2 FL
2 UK
3 MN
我希望得到这样一个新的表格,它有一个独特的ID,有一个位置列列出了所有的人去的地方。
ID Loc
1 NY, TN, NC
2 FL, UK
3 MN
我知道在Mysql中,您可以使用GROUP_CONCAT(参见post:)或FOR XML
我希望每一个日期汇总数据。我用BigQuery编写了SQL。现在有一张桌子
id | date | country | code
1 2015-10-16T12:00:30 Japan A
2 2015-10-16T12:00:30 America C
3 2017-08-20T15:50:44 America B
4 2016-22-56T11:32:01 China E
5 2017-08-20T15:50:44 EU D
我想把上面的表格换成这个
如何在BigQuery中设置排序规则?
我想要这样的东西
SELECT Place
FROM Locations
ORDER BY Place COLLATE "en_CA"
在BigQuery中,除了校对是一个保留词之外,我找不到任何其他文档。
BigQuery正在按..zA..z顺序对以下字符串进行排序:
例如。
antbeecatAppleBananaCantaloupe
有办法让BigQuery按aA..zZ顺序排序吗?
antApplebeeBananacatCantaloupe
我正在尝试处理BigQuery的公共数据集BigQuery。我的目标是获得输出作为三列,显示(犯罪)的描述,他们的计数,并为该特定的描述(犯罪)的顶级地区。
我可以通过这个查询获得前两列。
select
a.description,
count(*) as district_count
from `bigquery-public-data.austin_crime.crime` a
group by description order by district_count desc
我希望通过一个查询就可以完成这个任务,然后我尝试这样做,以便通过添加下面的代码
我对Bigquery中的STRING_AGG有一个问题。我在努力:
SELECT
id,
institution,
COUNT(DISTINCT institution) OVER (PARTITION BY id) as count_intitution
STRING_AGG(DISTINCT institution,"," ) OVER (PARTITION BY id) as list_intitution
FROM
name_table
WHERE
DATE(created_at) = "2020-02-02"
我得到了一个错误:
分析函
bigquery中有这样的列:
预期产出:
我正在尝试使用bigquery将列合并到json中。我把字母前下划线(普通名称)作为列,然后转换。
我正在尝试这个查询:
with selectdata as (
SELECT a_firstname, a_middlename,a_lastname FROM `account_id.Dataset.Table_name`
)
select TO_JSON_STRING(t) AS json_data FROM selectdata AS t;
如何用条件或用大小写连接列以实现bigquery中的输出
我尝试了以下查询:
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(字节,
我想要一个带有JSON列的表。这个JSON列可以包含任意文档。我想根据这些文件的时间戳合并,这些文件可在另一栏中查阅。有办法根据这些JSON文档的时间戳合并它们吗?
下面是一个示例:
at t3 time {a:"1", b:"2"}
at t2 time {b:"4"}
at t1 time {a:"4", c:"5"}
我想要创建{a:"1", b:"2", c:"5"}作为输出。这在BigQuery中是可能的吗?