Нераспознанное имя "ранг" в Bigquery - PullRequest
0 голосов
/ 06 мая 2020

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

with rank as (
select RANK() OVER (PARTITION BY area ORDER BY total_orders_last30days DESC) 
FROM `dataset`)
SELECT orders, name, area,  
FROM `dataset` where rank<=10 

1 Ответ

1 голос
/ 06 мая 2020

У вас несколько проблем с вашим кодом:

  • Вы определяете CTE, но не используете его.
  • У вас есть столбец в CTE, но не указывается alias.
  • Вы ссылаетесь на исходный набор данных, в котором нет этого столбца.

Это то, что вы хотите:

WITH r as (
      SELECT d.*,
             RANK() OVER (PARTITION BY area ORDER BY total_orders_last30days DESC) as rnk
      FROM `dataset` d
    )
SELECT orders, name, area,  
FROM r
wHERE rnk <= 10 ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...