首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在标准SQL (BigQuery)中比较两个数组?

如何在标准SQL (BigQuery)中比较两个数组?
EN

Stack Overflow用户
提问于 2021-02-14 22:43:22
回答 1查看 211关注 0票数 0

我有两个具有完全相同模式的表,其中一个字段是一条记录,我尝试在这两个表之间比较这个字段。

例如:

表A:

代码语言:javascript
运行
复制
{ Name: 'Mary',
  DOB: '06.06.1970',
  Children:[
            { Name: John,   Age: 6 },
            { Name: Agatha, Age: 10}
           ]
},
{ Name: 'Bob',
  DOB: '30.03.1982',
  Children:[
            { Name: Anthony, Age: 9 },
            { Name: William, Age: 4 },
            { Name: Rose,    Age: 2 }
           ]
},
{ Name: 'Adam',
      DOB: '312.10.1980',
      Children:[
                { Name: Andrew, Age: 9 },
                { Name: Kate, Age: 4 }
               ]
    }

表B:

代码语言:javascript
运行
复制
{ Name: 'Mary',
      DOB: '06.06.1970',
      Children:[
                { Name: John,   Age: 6 },
                { Name: Agatha, Age: 10}
               ]
    },
    { Name: 'Bob',
      DOB: '30.03.1982',
      Children:[
                { Name: Anthony, Age: 9 },
                { Name: George,  Age: 4 },
                { Name: Frank,   Age: 2 }
               ]
    },
    { Name: 'Adam',
      DOB: '312.10.1980',
      Children:[
                { Name: Andrew, Age: 9 },
                { Name: Kate, Age: 4 },
                { Name: Jonathan,    Age: 2 }
               ]
    }

我想要得到的输出是:

代码语言:javascript
运行
复制
Name    
----------
Bob     
Adam    

由于表A和表B中Bob或Adam的子项详细信息不同(无论是记录的大小(子项的数量)还是详细信息(子项名称等))

我尝试使用SELECT UNION DISTINCT,但它在数组上不起作用,我还尝试了!=<>,但它在数组上不起作用……比较两个数组非常理想,就像在Python中比较两个列表(比较结构和内容)。

有没有办法实现类似的东西?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-15 00:57:42

代码语言:javascript
运行
复制
select name
from `project.dataset.tableA` a
join `project.dataset.tableB` b
using(name)
where a.dob != b.dob 
or (select string_agg(format('%t', s) order by name) from a.children s) 
!= (select string_agg(format('%t', s) order by name) from b.children s)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66196527

复制
相关文章

相似问题

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