Псевдоним оператора BigQuery select не работает в предложении where - PullRequest
0 голосов
/ 11 июля 2019

Я попытался выполнить приведенный ниже запрос, но он выдал ошибку RANK не определен.

SELECT
    EmailAddress
  , FirstName
  , LastName
  , RANK() OVER (ORDER BY BookingDate) AS RANK FROM `table_name`
WHERE RANK BETWEEN 5 AND 7

1 Ответ

3 голосов
/ 11 июля 2019

Ниже для BigQuery Standard SQL

Предложение WHERE оценивается до формирования запроса и присвоения псевдонимов, что означает, что поле rank недоступно в то время, когда WHERE rank BETWEEN 5 AND 7.

Вам просто нужно использовать ниже

#standardSQL
SELECT * FROM (
  SELECT
      EmailAddress
    , FirstName
    , LastName
    , RANK() OVER (ORDER BY BookingDate) AS rank 
  FROM `project.dataset.table`
)
WHERE rank BETWEEN 5 AND 7 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...