Ошибка SQL BigQuery: ранжирование имени не найдено внутри не позднее [9:15] - PullRequest
0 голосов
/ 18 октября 2018

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

Ранг имени не найден в последнем из [9:15]

И я просто не могу понять, почему.Примечание: я новичок в SQL.Вопрос ниже:

SELECT *
  FROM (
        SELECT *,
        RANK () OVER (PARTITION BY gregoriandate 
                     ORDER BY _sdc_report_datetime DESC)
        FROM hf_bing.campaign_performance_report
        ORDER BY gregoriandate ASC
       ) AS latest
 where latest.rank = 1

1 Ответ

0 голосов
/ 18 октября 2018

Может быть, это уже решает за вас:

SELECT 
  *
FROM (
  SELECT
    *,
    RANK () OVER (PARTITION BY gregoriandate ORDER BY _sdc_report_datetime DESC) AS rank_
  FROM hf_bing.campaign_performance_report
 )
 WHERE rank_ = 1

Когда вы используете WHERE latest.rank = 1, на самом деле нет поля с именем rank в latest, что приводит к полученной вами ошибке.В основном я использовал псевдоним для поля, поэтому теперь BigQuery точно знает, на какое поле ссылаются.

...