Описание тега bigquery-standard-sql

Этот тег используется для диалекта Google BigQuery "Стандартный SQL". Для вопросов, связанных со стандартом SQL, используйте вместо него тег [ansi-sql]. Не забудьте также использовать тег [google-bigquery], чтобы обращаться к людям, которые отслеживают эти вопросы.
3 ответа

Вычислительные процентили в BigQuery

Я использую BigQuery, и мне нужно вычислить 25-й, 50-й и 75-й процентиль столбца набора данных. Например, как я могу получить вышеупомянутые числа, используя BigQuery и STANDARD SQL. Я посмотрел на функции PERCENT_RANK, RANK и NTILE, но, похоже, не …
1 ответ

Как преобразовать строковый массив в массив в BigQuery?

Так получилось, у меня есть строковый массив в поле в BigQuery '["a","b","c"]' и я хочу преобразовать его в массив, который понимает BigQuery. Я хочу быть в состоянии сделать это в стандартном SQL: with k as (select '["a","b","c"]' as x) select x fr…
3 ответа

Построить массив на основе добавления и удаления строк событий в BigQuery

У меня есть таблица в BigQuery со следующей структурой: datetime | event | value ========================== 1 | add | 1 ---------+--------+------- 2 | remove | 1 ---------+--------+------- 6 | add | 2 ---------+--------+------- 8 | add | 3 ---------…
4 ответа

Как выполнить запрос, чтобы получить результаты за последние 12 месяцев ( BigQuery)

Я хочу получить записи за последние 12 месяцев для определенного идентификатора в таблице Big Query. Я извлек месяц и год как отдельные столбцы из исходного столбца отметок времени. Я пытался использовать date_add() и date_diff(), но я получаю некот…
1 ответ

Ошибка BigQuery: невозможно вернуть недопустимое значение метки времени в 6328502092800000000 микросекунд относительно эпохи Unix

Мы используем простой запрос выбора со стандартным SQL в BigQuery. select expiration_date FROM cards Но, он возвращает ошибку ниже, Ошибка: невозможно вернуть недопустимое значение метки времени 6328502092800000000 микросекунд относительно эпохи Uni…
1 ответ

BigQuery: удаление дубликатов в секционированной таблице

У меня есть таблица BQ, которая разделена по времени вставки. Я пытаюсь удалить дубликаты из таблицы. Это истинные дубликаты: для 2-х одинаковых строк все столбцы равны - конечно, полезно иметь уникальный ключ:-( Сначала я попытался выполнить запрос…
2 ответа

Эффективный способ сравнить две таблицы в BigQuery

Мне интересно сравнить, содержат ли две таблицы одинаковые данные. Я мог бы сделать это так: #standardSQL SELECT key1, key2 FROM ( SELECT table1.key1, table1.key2, table1.column1 - table2.column1 as col1, table1.col2 - table2.col2 as col2 FROM `tabl…
1 ответ

JS UDF, который возвращает структуру для стандартного SQL / BigQuery и создает два столбца

Я пытаюсь написать пользовательскую функцию для BigQuery, используя Javascript, который возвращает структуру и генерирует два столбца: CREATE TEMP FUNCTION exampleFunction(exampleString STRING) RETURNS STRUCT<index INT64, latency INT64> LANGUA…
4 ответа

Добавление двоеточия после двух чисел с использованием стандартного SQL

Я пытаюсь выполнить запрос в Big-Query с использованием стандартного SQL. В моей таблице есть столбец, в котором время представлено в следующем формате: 170519 Что я хочу сделать, это добавить двоеточие (:) после каждых двух чисел, чтобы получить та…
1 ответ

Вставьте данные в BigQuery из Google Script: Encountered ""

Я пытаюсь импортировать данные из электронной таблицы Google в BigQuery через Google App Script. Я могу загрузить данные, но у меня возникает ошибка при попытке сделать INSERT INTO. Сообщение об ошибке Обнаружено "" в строке 1, столбец 31. [Попробуй…
1 ответ

Наиболее эффективный способ разделения строк по имени и последующего переноса в один столбец для каждого имени

Я использую стандартный SQL в Google Bigquery. Итак, у меня есть некоторые данные о показателях в этом формате: Date | metric_name | metric_level 01/02/2019 | metric_one | 1 02/03/2019 | metric_one | 2 14/02/2019 | metric_two | 6 17/02/2019 | metric…
06 июн '19 в 14:13
0 ответов

Как создать массив вложенных полей и массивов в BigQuery

Я пытаюсь создать таблицу в BigQuery в соответствии со схемой json, которую я добавлю в GCS и оттуда перенесу в паб / подраздел. Мне нужно создать несколько массивов и вложенных полей, чтобы добиться этого. Используя struct и array_agg, я могу получ…
1 ответ

BigQuery, Получить массив номеров строк по условию в группе по

Учитывая таблицу id column1 timestamp 1 no 1 yes 1 yes 2 no 2 yes 2 no Мне нужен список строк столбца 1 по условию "да" в группе как id arr 1 [2,3] 2 [2] Благодарность
05 сен '19 в 10:26
1 ответ

Запрос из динамического проекта + набор данных + названия таблиц Google BigQuery

Мне нужно выполнить один запрос ко всем моим проектам в BigQuery. Список проектов может увеличиваться с каждым днем, поэтому мне нужно выполнять эту работу динамически. Все таблицы, которые мне нужно запрашивать, имеют одну и ту же схему, но каждая …
03 сен '19 в 13:02
1 ответ

Вставка в таблицу Bigquery с массивом массивов

Как вставить запись в таблицу BigQuery с вложенными массивами глубиной в 2 уровня. В таблице ORDER есть массив ORDER_DETAIL, который имеет массив ORDER_DISCOUNTS. Ниже не работает. INSERT INTO ORDER (ORDER_ID, OrderDetail) SELECT OH.ORDER_ID, ARRAY_…
05 сен '19 в 14:49
1 ответ

BigQuery: динамически выбирать таблицу по текущей дате в стандартном SQL?

Я пытаюсь найти таблицу с текущей датой SELECT * FROM `da`.`m`.`ga_realtime_20190306` но не работает SELECT * FROM `da`.`m`.`CONCAT('ga_realtime_', FORMAT_DATE('%Y%m%d', CURRENT_DATE())` Как я могу динамически выбирать таблицу с помощью CURRENT_DATE…
06 сен '19 в 10:54
2 ответа

Как сделать так, чтобы строка появлялась несколько раз в зависимости от значения в столбце?

Я создаю набор данных для пользователей, имеющих право выиграть лотерею. Все зарегистрированные пользователи имеют право на участие, однако премиум-пользователи получают 2 билета вместо 1. Если у меня есть таблица, как показано ниже: user_id type 16…
12 сен '19 в 12:45
1 ответ

Как отфильтровать значения столбцов по списку строк

Я пытаюсь отфильтровать набор данных, сравнивая список строк со значениями столбцов. Это хорошо работает с LIKE и одной строкой, используя 3 ГБ. #standardSQL SELECT substr(CAST((DATE) AS STRING),0,8) as daydate, count(1) as count, avg(CAST(REGEXP_RE…
12 сен '19 в 12:54
1 ответ

Получить интервал дней из запроса

У меня есть запрос, который возвращает строки за определенные дни с помощью _TABLE_SUFFIX вариант. Мое предложение where изначально было таким: WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY)) AND FORMAT_DA…
02 сен '19 в 15:59
2 ответа

Выполнение текущего подсчета несекционированных данных в Google bigquery

У меня есть данные, которые выглядят так, как показано ниже Date | Priority ---------------- 01/01 | Low 02/01 | Low 03/01 | Low 04/01 | Med 05/01 | Med 06/01 | Low 07/01 | High 08/01 | High 09/01 | Med ... Я хочу добавить столбец, который отображае…
02 сен '19 в 16:40