BigQuery – ошибка DATE_TRUNC

пытаясь получить ежемесячные агрегированные данные из таблицы Legacy. Столбцы значений даты представляют собой строки:

amount  date_create
100     2018-01-05
200     2018-02-03
300     2018-01-22

Тем не менее, команда

 Select DATE_TRUNC(DATE date_create, MONTH) as month, 
        sum(amount) as amount_m 
 from table  
 group by 1

Возвращает следующую ошибку:

Ошибка: синтаксическая ошибка: ожидалось ")", но получен идентификатор "date_create"

Почему этот запрос не выполняется и что можно сделать, чтобы избежать этой проблемы?

Спасибо


person Ilja    schedule 20.03.2018    source источник


Ответы (4)


Похоже, вы хотели привести date_create вместо использования ключевого слова DATE (именно так вы создаете буквальное значение). Попробуйте это вместо этого:

Select DATE_TRUNC(DATE(date_create), MONTH) as month, 
    sum(amount) as amount_m 
from table
GROUP BY 1
person Elliott Brossard    schedule 20.03.2018
comment
Этот возвращает Error: No matching signature for function DATE for argument types: STRING. Supported signatures: DATE(TIMESTAMP, [STRING]); DATE(DATETIME); DATE(INT64, INT64, INT64) Однако приведение работает: date_trunc(cast(date_create as date), MONTH) as Month работает - person Ilja; 21.03.2018

Я понял:

date_trunc(cast(date_create as date), MONTH) as Month

person Ilja    schedule 21.03.2018


Попробуйте добавить двойную кавычку к date_creat:

Select DATE_TRUNC('date_create', MONTH) as month, 
        sum(amount) as amount_m 
 from table  
 group by 1
person FrqSalah    schedule 20.03.2018