Использование переменных в BigQuery для вычисления других переменных

avatar
John
9 августа 2021 в 01:54
25
1
0

Я пытаюсь использовать столбец выборки, который случайным образом выбирает число от 0 до 9999, чтобы облегчить нагрузку на некоторые запросы, поскольку не все они должны быть точными. Итак, я хочу иметь возможность использовать разную частоту дискретизации для каждого запроса, и в зависимости от используемой частоты мне нужно применить множитель к ряду других столбцов.

Я хотел бы использовать вычисляемые переменные, чтобы не вносить кучу правок в мой код для каждого запроса.

Я пытаюсь сделать что-то вроде этого,

declare sample int64 default 1;
declare multiplier decimal default 10000/sample;

Однако это не работает, я получаю сообщение об ошибке приведения, говорящее о том, что переменная множителя не может быть приведена к десятичной дроби. Итак, я попытался использовать float64 для множителя, и он возвращает все 0.

Я новичок в BQ и был бы признателен за отзыв, так как уверен, что что-то упускаю из виду. Кто-нибудь знает, как использовать подобные вычисляемые переменные в BigQuery?

Мы будем очень признательны за любую помощь.

Спасибо

Источник

Ответы (1)

avatar
user16586978
9 августа 2021 в 07:21
0

float64 — правильный тип данных.

declare sample int64 default 3;
declare multiplier float64 default 10000/sample;
declare multiplier_int int64 default  cast( multiplier as int64);

select sample, multiplier,multiplier_int