Как мы можем изменить тип данных столбца, используя стандартный SQL в BigQuery? - PullRequest
0 голосов
/ 15 февраля 2019

Я знаю, что это может быть глупо, но ни один из старых случаев не работает для меня.И ни для метода CAST.

Я пытаюсь выполнить следующий запрос, и я получил следующую ошибку:

SELECT
  P.date,
  P.campaign_id,
  P.ad_name,
  P.impressions,
  P.clicks,
  P.spend,
  P.NOM_ENSEMBLE,
  P.CODE_ENSEMBLE_IMMO,
  F.FREQUENTATION_CENTRE
FROM
  `project.digital.fb_data` AS P
JOIN
  `project.digital.freq_data` AS F
ON
  (P.date = F.JOUR AND P.CODE_ENSEMBLE_IMMO=F.CODE_ENSEMBLE_IMMO)

Ошибка:

Error: No matching signature for operator = for argument types: DATE, STRING. Supported signatures: ANY = ANY at [16:4]

1 Ответ

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

Ниже для BigQuery Standard SQL

Первый запрос - это упрощенный запрос, который воспроизводит / демонстрирует вашу проблему

#standardSQL
WITH `project.digital.fb_data` AS (
  SELECT DATE '2019-02-15' `date`, 1 CODE_ENSEMBLE_IMMO 
),  `project.digital.freq_data` AS (
  SELECT '02-15-2019' JOUR, 1 CODE_ENSEMBLE_IMMO, 'zzz' FREQUENTATION_CENTRE
)
SELECT
  P.date,
  P.CODE_ENSEMBLE_IMMO,
  F.FREQUENTATION_CENTRE
FROM `project.digital.fb_data` AS P
JOIN `project.digital.freq_data` AS F
ON P.date = F.JOUR 
AND P.CODE_ENSEMBLE_IMMO=F.CODE_ENSEMBLE_IMMO   

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

Error: No matching signature for operator = for argument types: DATE, STRING. Supported signatures: ANY = ANY at [13:4]  

Ниже запрос демонстрирует, какчтобы решить вышеуказанную проблему

#standardSQL
WITH `project.digital.fb_data` AS (
  SELECT DATE '2019-02-15' `date`, 1 CODE_ENSEMBLE_IMMO 
),  `project.digital.freq_data` AS (
  SELECT '02-15-2019' JOUR, 1 CODE_ENSEMBLE_IMMO, 'zzz' FREQUENTATION_CENTRE
)
SELECT
  P.date,
  P.CODE_ENSEMBLE_IMMO,
  F.FREQUENTATION_CENTRE
FROM `project.digital.fb_data` AS P
JOIN `project.digital.freq_data` AS F
ON P.date = PARSE_DATE('%m-%d-%Y', F.JOUR)
AND P.CODE_ENSEMBLE_IMMO=F.CODE_ENSEMBLE_IMMO   

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

Row date        CODE_ENSEMBLE_IMMO  FREQUENTATION_CENTRE     
1   2019-02-15  1                   zzz       

Примечание: у вас может быть F.JOUR un формат, отличный от приведенного выше примера - поэтому отметьте PARSE_DATE функция для работы с поддерживаемыми форматами

...