在 Trino(又名 Presto)工作。我有一个数据表,其结构如下:
公司 ID | 公司名称 | 相关公司 |
---|---|---|
xy12345 | 酷公司 | [{company_id=we23456,type=PARTNER},{company_id=tr45678,type=PARTNER},{company_id=fu76354,type=PARTNER}] |
该related_companies
字段的类型为list<struct<company_id: string, type: string>>
如何构建我的查询以获得输出结果:
公司 ID | 公司名称 | 相关公司 |
---|---|---|
xy12345 | 酷公司 | we23456、tr45678、fu76354 |
您可以利用数组函数-transform
和array_join
:
-- sample data
with dataset (company_id, company_name, related_companies) as (
values ('xy12345', 'Cool Company', array[cast(row('we23456','PARTNER') as row(company_id varchar, "type" varchar)),
cast(row('tr45678','PARTNER') as row(company_id varchar, "type" varchar))])
)
-- query
select company_id,
company_name,
array_join(transform(related_companies, r -> r.company_id), ', ') related_companies
from dataset;
Run Code Online (Sandbox Code Playgroud)
输出:
公司 ID | 公司名称 | 相关公司 |
---|---|---|
xy12345 | 酷公司 | we23456、tr45678 |