Добавьте дату и время на основе имени столбца в bigquery

# #sql #google-bigquery

Вопрос:

У меня есть таблица в bigquery, как показано ниже:

введите описание изображения здесь

Я хочу создать таблицу и добавить час в start_time на основе индекса значения, например, start_time для value_1 будет 2021-02-01 1:00:00 UTC, для value_2 будет 2021-02-01 2:00:00 UTC. Итоговая таблица содержит только 3 столбца: проект в виде строки, время начала как дата-время и значение как числовое. Есть какие-нибудь намеки?

Ответ №1:

Рассмотрим следующий подход

 select project, 
  timestamp_add(start_time, interval cast(replace(col, 'value_', '') as int64) hour) as start_time, 
  value
from your_table
unpivot (value for col in (value_0,  value_1,  value_2,  value_3))    
 

если применяется к фиктивным данным, как в вашем вопросе

введите описание изображения здесь

выход есть

введите описание изображения здесь