Google bigquery BigQuery:展平嵌套模式中的所有重复字段

Google bigquery BigQuery:展平嵌套模式中的所有重复字段,google-bigquery,bigquery-standard-sql,unnest,Google Bigquery,Bigquery Standard Sql,Unnest,我在从大查询的嵌套模式进行查询时遇到了很多麻烦。 我有以下字段 我想把桌子弄平,弄点像这样的东西 用户|问题| id |用户|选择 123 | 1 | 1 123 | 1 | 2 123 | 1 | 3 123 | 1 | 4 从其他资源中,我可以查询重复列中的一条记录。例如: 从表名中选择用户,dat.question\u id,UNNEST(data)dat 它给了我这个结果。 但是当我这样做的时候,我又得到了一个重复的专栏 从tablename、UNNEST(data)dat中选择us

我在从大查询的嵌套模式进行查询时遇到了很多麻烦。 我有以下字段

我想把桌子弄平,弄点像这样的东西

用户|问题| id |用户|选择

123 | 1 | 1

123 | 1 | 2

123 | 1 | 3

123 | 1 | 4

从其他资源中,我可以查询重复列中的一条记录。例如:

从表名中选择用户,dat.question\u id,UNNEST(data)dat

它给了我这个结果。

但是当我这样做的时候,我又得到了一个重复的专栏

从tablename、UNNEST(data)dat中选择user、dat.question\u id、dat.user\u选项

有谁能帮助我如何正确地取消这个表的测试,这样我就可以为所有数据项设置平坦的模式


谢谢

下面是BigQuery标准SQL

#standardSQL
SELECT user, question_id, choice 
FROM `project.dataset.table`, 
  UNNEST(data) question, 
  UNNEST(user_choices) choice
您可以使用下面问题中的虚拟数据来测试、玩上面的游戏

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1 user, 
    [STRUCT<question_id INT64, user_choices ARRAY<INT64>>
      (1,[1,2,3]),
      (2,[2,5]),
      (3,[1,3])
    ] data UNION ALL
  SELECT 2 user, 
    [STRUCT<question_id INT64, user_choices ARRAY<INT64>>
      (1,[2,3]),
      (2,[4,5]),
      (3,[2,6])
    ] data
)
SELECT user, question_id, choice 
FROM `project.dataset.table`, 
  UNNEST(data) question, 
  UNNEST(user_choices) choice
ORDER BY user, question_id, choice    

下面是BigQuery标准SQL

#standardSQL
SELECT user, question_id, choice 
FROM `project.dataset.table`, 
  UNNEST(data) question, 
  UNNEST(user_choices) choice
您可以使用下面问题中的虚拟数据来测试、玩上面的游戏

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1 user, 
    [STRUCT<question_id INT64, user_choices ARRAY<INT64>>
      (1,[1,2,3]),
      (2,[2,5]),
      (3,[1,3])
    ] data UNION ALL
  SELECT 2 user, 
    [STRUCT<question_id INT64, user_choices ARRAY<INT64>>
      (1,[2,3]),
      (2,[4,5]),
      (3,[2,6])
    ] data
)
SELECT user, question_id, choice 
FROM `project.dataset.table`, 
  UNNEST(data) question, 
  UNNEST(user_choices) choice
ORDER BY user, question_id, choice    

如果有帮助的话,也要考虑一下投票结果:O)如果有帮助的话,也要考虑投票的结果:O)