Я думаю, что есть ряд разумных обходных путей для ваших требований, в основном в области улучшения дизайна вашей таблицы. Все действительно зависит от того, как вы вводите свои данные и, самое главное, как вы их потребляете.
Тем не менее, если придерживаться представленных требований. Ниже приведено не совсем то, что вы ожидаете в своем вопросе в качестве вывода, но может быть полезно в качестве примера:
SELECT name, GROUP_CONCAT(STRING(cum)) AS all FROM (
SELECT name,
SUM(INTEGER(num))
OVER(PARTITION BY name
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cum
FROM (
SELECT name, SPLIT(all) AS num FROM (
SELECT name,
CONCAT(STRING(a),',',STRING(b),',',STRING(c),',',STRING(d)) AS all
FROM yourtable
)
)
)
GROUP BY name
Выход:
name all
Bob 1,3,6,10
Carl 5,11,18,26
Зависит от того, как вы используете эти данные - они все еще могут работать на вас. Обратите внимание, что вы не избегаете сейчас писать что-то вроде col1 + col2 + .. + col89 + col90 - но все равно нужно явно указывать каждый столбец только один.
в случае, если у вас есть «роскошь» реализации ваших требований за пределами пользовательского интерфейса GBQ, а скорее в каком-то клиенте — вы можете использовать BigQuery API для программного получения схемы таблицы и построения на лету свою логику/запрос, а затем выполните его. Для начала взгляните на приведенные ниже API:
Чтобы получить схему таблицы, https://cloud.google.com/bigquery/docs/reference/v2/tables/get
Чтобы выполнить задание запроса - https://cloud.google.com/bigquery/docs/reference/v2/jobs/insert а>
person
Mikhail Berlyant
schedule
08.01.2016