Извлечение часа с использованием coalese в SQL на временной метке - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь обновить запрос, чтобы извлечь час из отметки времени, и я получаю сообщение об ошибке. Я получаю ошибку из-за предложения FROM, которое я использовал.

SELECT 
analytics_platform_data_type
, activity_date_pt
, activity_timestamp_pt
, analytics_platform_timestamp_utc
, analytics_platform_timestamp_utc_iso

--This is the clause that is causing the problem (Begin)
, extract(hour from coalesce(activity_timestamp_pt)) as latd_hour_pt
--Clause above is the issue; Line above is line 9 (End)

, analytics_platform_ platform
, ad_channel_name
, publisher_name
, ip_address
, analytics_platform_unique_activity_id
, click_id
, latd_custom_fields
FROM table_date_range([AllData_AnalyticsMobileData_], timestamp('2018-09- 
25'), timestamp('2018-09-27')) 
where 1=1
and analytics_platform_data_type = 'CLICK'
and partner_name = 'ABC123'

Если я уберу часть времени извлечения, запрос будет работать нормально. Когда я добавляю его, я получаю сообщение об ошибке: «Столкнулся с« »ИЗ» в строке 9, столбец 16. Ожидалось: «)» ...

Я видел предложение, которое я пытаюсь использовать в приведенном выше запросе, который использовался ранее, но это был гораздо более сложный запрос, использующий подзапросы. На самом деле не уверен, в чем проблема. (Использование Google Big Query Legacy SQL)

1 Ответ

0 голосов
/ 07 ноября 2018

Ваш запрос смешивает устаревший синтаксис (table_date_range) со стандартным синтаксисом (извлечение)

Если по какой-то причине вам нужно придерживаться Legacy SQL - используйте HOUR() вместо EXTRACT ()

Но очень рекомендуется перенести материал в стандартный SQL - где вы должны использовать wildcard functions вместо table_date_range

Что-то вроде

FROM `project.dataset.AllData_AnalyticsMobileData_*`
WHERE _TABLE_SUFFIX BETWEEN '2018-09-25' AND '2018-09-27'

подробнее см. https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#table_decorators_and_wildcard_functions в Миграция на стандартный SQL doc

...