Итак, в BQ standardSQL, используя ARRAY_AGG, вам всегда нужно указывать поля struct? Или это может быть динамическим результатом (например, *)
например, memberRoleId может иметь несколько членств (то есть повторяет memberRoleId) в таблице Memberships, я хочу создать массив всех значений в виде структуры без указания списка, поскольку это длинная широкая таблица!
Я пытаюсь собрать все строки по общему идентификатору в массив, но я хочу легко включить все поля в строку без явного определения - возможно ли это?
Из этого ...
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, х, х, х, х, х, х, х}, {MemberRoleId, у, у, у, у, у, у, у}]
но не обязательно явно определять структурную схему для массива agg ....