首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在BigQuery中使用UNNEST函数

在BigQuery中使用UNNEST函数
EN

Stack Overflow用户
提问于 2019-08-22 13:07:25
回答 1查看 9.3K关注 0票数 2

我需要关于如何使用BigQuery UNNEST功能的帮助。我的问题是:

我有一个如图所示的表,我想要解套当前由逗号分隔的“域”(字符串类型)字段,以便将每个逗号分隔的域放入每个"acname“的不同行中。所需的输出也包含在图像中:

enter image description here

我尝试了这个逻辑,但不起作用:

project.dataset.dummy_account中选择acc.acname、acc.amount、acc.domains作为Acc域,作为acc交叉加入UNNEST(acc.domains)

但这给出了错误“在UNNEST中引用的值必须是数组。UNNEST包含字符串类型的表达式”。该错误完全有意义,但不理解如何将字符串转换为数组。

有没有人可以帮我解决这个问题,并解释一下它的实际工作原理。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-22 13:24:46

下面是针对BigQuery标准SQL的说明

代码语言:javascript
运行
复制
#standardSQL
SELECT acname, amount, domain
FROM `project.dataset.dummy`,
UNNEST(SPLIT(domains)) domain  

您可以使用问题中的虚拟数据进行测试,如下面的示例所示

代码语言:javascript
运行
复制
#standardSQL
WITH `project.dataset.dummy` AS (
  SELECT 'abc' acname, 100 amount, 'a,b,c' domains UNION ALL
  SELECT 'pqr', 300, 'p,q,r' UNION ALL
  SELECT 'lmn', 500, 'l,m,n'
)
SELECT acname, amount, domain
FROM `project.dataset.dummy`,
UNNEST(SPLIT(domains)) domain   

带输出

代码语言:javascript
运行
复制
Row acname  amount  domain   
1   abc     100     a    
2   abc     100     b    
3   abc     100     c    
4   pqr     300     p    
5   pqr     300     q    
6   pqr     300     r    
7   lmn     500     l    
8   lmn     500     m    
9   lmn     500     n     

取消嵌套后输出“

”字段的源表project.dataset.dummy具有逗号分隔值,但逗号后有一个空格(例如,‘a’‘commaspace’b‘’commaspace a,b,c)。这将导致在“取消嵌套后输出”表中的字段"domains“中,值b c q r m n前有空格。现在我将使用"salesdomain”作为键连接此表。但由于b c q r m n之前有空格,因此收到的输出不正确

为了解决这个问题,您可以简单地使用TRIM函数来删除所有的前导和尾随空格,如下面的示例所示

代码语言:javascript
运行
复制
#standardSQL
WITH `project.dataset.dummy` AS (
  SELECT 'abc' acname, 100 amount, 'a, b, c' domains UNION ALL
  SELECT 'pqr', 300, 'p, q, r' UNION ALL
  SELECT 'lmn', 500, 'l, m, n'
)
SELECT acname, amount, TRIM(domain, ' ') domain
FROM `project.dataset.dummy`,
UNNEST(SPLIT(domains)) domain   
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57602387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档