Internal error on NEST when not flattening results

前端 未结 3 1869
你的背包
你的背包 2021-01-20 05:51

I\'m trying to GROUP and return a repeated field into a new table

SELECT url, NEST(label) AS labels
FROM [mytable]
GROUP EACH BY url

It wor

相关标签:
3条回答
  • 2021-01-20 06:07

    From "Query Reference" on NEST() :

    BigQuery automatically flattens query results, so if you use the NEST function on the top level query, the results won't contain repeated fields. Use the NEST function when using a subselect that produces intermediate results for immediate use by the same query.

    So if you want a non-flattened result here, you'd need to do a select * from your other select I'd think

    0 讨论(0)
  • 2021-01-20 06:14

    Recently found workaround for this issue:

    Try

    SELECT url, labels 
    FROM (
      SELECT url, NEST(label) AS labels
      FROM [mytable]
      GROUP EACH BY url
    ) as a
    CROSS JOIN (SELECT 1) as b  
    

    Note, you have to write result to table with Allow Large Results on and Flatten Results off

    0 讨论(0)
  • 2021-01-20 06:31

    NEST is unfortunately incompatible with unflattened results, as also mentioned here.

    A workaround that might work for you is using SPLIT(GROUP_CONCAT(label)) instead of using NEST. That should work if your label field is of type string. You may need to choose an explicit separator for GROUP_CONCAT if your labels contain commas, but I think this solution should be workable.

    0 讨论(0)
提交回复
热议问题