Как сгладить два столбца в таблице sql?

У меня есть таблица, которая включает два столбца с массивами, один из которых представляет валюту (['EUR', 'GBP',...]), а другой - курсы валюты к доллару США (['1.10', '1.23', . ..]). Каждое новое обновление представляет собой новую строку с отметкой времени и хешем транзакции (это из сети ethereum).

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

Это моя попытка:

SELECT * FROM `main_table`
CROSS JOIN (
UNNEST(tickers) AS ticker 
INNER JOIN UNNEST(rates) AS rate)

Я использую BigQuery


person Miha Lotric    schedule 10.09.2019    source источник
comment
Не могли бы вы включить некоторые примеры данных - что у вас есть в настоящее время и что вы хотели бы увидеть в результате?   -  person ravioli    schedule 10.09.2019


Ответы (1)


Один из методов заключается в использовании смещений:

SELECT *
FROM `main_table` t CROSS JOIN
     UNNEST(t.tickers) WITH OFFSET tn LEFT JOIN
     UNNEST(t.rates) WITH OFFSET rn
     ON tn = rn
person Gordon Linoff    schedule 10.09.2019