Google bigquery 数组聚合/集合-需要显式指定结构字段吗?

Google bigquery 数组聚合/集合-需要显式指定结构字段吗?,google-bigquery,Google Bigquery,那么在BQ standardSQL中,使用ARRAY_AGG,您是否总是需要指定struct字段?或者这会是动态的结果(例如*) e、 g memberRoleId在memberships表中可以有多个成员身份(即memberRoleId重复),我想创建一个包含所有值的数组作为结构,而不必指定列表,因为它是一个长而宽的表 我试图通过公共id将所有行收集到一个数组中,但我想在sturct中轻松包含所有字段,而无需显式定义-这可能吗 从这个 MemberRoleId, ARR

那么在BQ standardSQL中,使用ARRAY_AGG,您是否总是需要指定struct字段?或者这会是动态的结果(例如*)

e、 g memberRoleId在memberships表中可以有多个成员身份(即memberRoleId重复),我想创建一个包含所有值的数组作为结构,而不必指定列表,因为它是一个长而宽的表

我试图通过公共id将所有行收集到一个数组中,但我想在sturct中轻松包含所有字段,而无需显式定义-这可能吗

从这个

      MemberRoleId,
      ARRAY_AGG (
        STRUCT( 
           MemberRoleId, MembershipId, MemberPartyId, MemberRoleId......     
        )
      )
    FROM
      Memberships
    GROUP BY
      MemberRoleId
类似于下面的*只是说我希望与分组的MemberRoleId匹配的所有行和列都在结构中

      MemberRoleId,
      ARRAY_AGG (
        STRUCT( 
           * 
        )
      )
    FROM
      Memberships
    GROUP BY
      MemberRoleId
MemberRoleId,[{MemberRoleId,x,x,x,x,x,x},{MemberRoleId,y,y,y,y,y,y}]


但是不必为数组agg显式定义结构模式。…

下面是针对BigQuery标准SQL的

你可以使用下面的方法来实现你的目标

SELECT
  MemberRoleId,
  ARRAY_AGG (t)
FROM
  Memberships t
GROUP BY
  MemberRoleId

很可能是最快的答案错过了明显的抱歉!