Скажем, у меня есть таблица с 4 столбцами, a
типа string, b
типа integer, c
типа integer и d
типа integer. Как бы я go вперед и использовал что-то вроде ARRAY_AGG
для STRUCT(b, c)
и d
по отдельности (другими словами, иметь два отдельных столбца, которые были бы массивами)?
Запрос у меня так far:
SELECT table1.a, table1.x, table2.y
FROM (
SELECT a, ARRAY_AGG(STRUCT(b, c)) AS x
FROM project.table
GROUP BY a
ORDER BY a
) AS table1
LEFT OUTER JOIN (
SELECT a, ARRAY_AGG(d) AS y
FROM project.table
GROUP BY a, d
ORDER BY a, d
) table2 ON table1.a = table2.a
GROUP BY table1.a
ORDER BY table1.a;
Это дает мне ошибку: SELECT list expression references table1.x which is neither grouped nor aggregated at [1:20]
Но если я пытаюсь добавить table1.x
к предложению GROUP BY
в конце, я получаю новую ошибку : Grouping by expressions of type ARRAY is not allowed at [14:22]