首页 > 解决方案 > 在 BigQuery 中加入数组字段

问题描述

我们有表 Table1 和 Table2

表格1

身份证名称主体      
1 xxx物理   
         数学
         化学
2年物理   
         数学
         化学
表 2

身份标记
1 70
     67
     88
2 90
     99
     89

我们需要像这样的格式加入上面两个表,条件Table1.Id=Table2.Id,

Id name 主题 Marks
1 xxx物理70
             数学 67
             化学 88
2 yyy 物理 90
             数学 99
             化学 89

标签: google-bigquery

解决方案


#standardSQL
WITH `project.dataset.table1` AS (
  SELECT 1 id, 'xxx' name, ['physics', 'maths', 'chemistry'] subject UNION ALL
  SELECT 2, 'yyy', ['physics', 'maths', 'chemistry'] 
), `project.dataset.table2` AS (
  SELECT 1 id, [70, 67, 88] marks UNION ALL
  SELECT 2, [90, 99, 89] 
)
SELECT *
FROM `project.dataset.table1` t1
JOIN `project.dataset.table2` t2
USING(id)

结果

Row id  name    subject     marks    
1   1   xxx     physics     70   
                maths       67   
                chemistry   88   
2   2   yyy     physics     90   
                maths       99   
                chemistry   89   

推荐阅读