BigQuery - Как раскрутить несколько массивов и распределить значения из одного столбца? - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть таблица с несколькими массивами и один столбец, который действует как ключ:

enter image description here

Вопрос в том, как развернуть эту структуру так,что каждая строка также получает значение ключа строки?

Например:

домен, событие, ... реферер также должен иметь тот же ключ строки?

Пробовал в основном с использованием unnestвся таблица.

SELECT
  *
FROM
  UNNEST(`table.bigtable_analytics.frontend`)
LIMIT
  1000

Но возникает проблема с именами таблиц:

Нераспознанное имя: table.bigtable_analytics.frontend в [4:10]

1 Ответ

0 голосов
/ 06 февраля 2019

Непонятно, что именно представляет собой схема вашей таблицы, поэтому приведенный ниже пример (для BigQuery Standard SQL) просто использует упрощенную схему, чтобы представить подход для выполнения того, что вы просили: each row also gets the rowkey value

упрощенные фиктивные данныеэто:

Row     rowkey  column.name column.value     
1       key1    domain      aaa.com  
                event       pageload     
                hash        12345    
2       key2    domain2     aaa2.com     
                event2      pageload2    
                hash2       123456789     

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'key1' rowkey, [STRUCT<name STRING, value STRING>('domain', 'aaa.com'), STRUCT('event', 'pageload'), STRUCT('hash', '12345')] column UNION ALL
  SELECT 'key2', [STRUCT<name STRING, value STRING>('domain2', 'aaa2.com'), STRUCT('event2', 'pageload2'), STRUCT('hash2', '123456789')]
)
SELECT rowkey, x.*
FROM `project.dataset.table` t, t.column x 

с результатом как

Row rowkey  name    value    
1   key1    domain  aaa.com  
2   key1    event   pageload     
3   key1    hash    12345    
4   key2    domain2 aaa2.com     
5   key2    event2  pageload2    
6   key2    hash2   123456789    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...