улей hadoop с использованием row_number () - PullRequest
0 голосов
/ 13 мая 2018

У меня есть набор данных со многими дублирующимися идентификаторами.Я просто хочу сделать row_number () и взять первое.Если у меня есть table1 оставил соединение с table2 и только взять table2.rownumber = 1, это работает.но если я делаю автономно без объединения таблиц, это не так.У меня есть следующий код:

SELECT ID, NAME, NRIC, ROW_NUMBER () OVER (PARTITION BY ID ORDER BY ID) как RNK FROM TABLE1 WHERE RNK = 1;

Отображение сообщения об ошибкечто RNK не является допустимым столбцом таблицы или псевдонимом и т. д.

Любая помощь будет принята с благодарностью.Спасибо.

1 Ответ

0 голосов
/ 13 мая 2018

Вы должны использовать подзапрос или CTE для ссылки на псевдоним столбца для фильтрации:

SELECT ID, NAME, NRIC, RNK
FROM (SELECT t1.*, ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID) as RNK
      FROM TABLE1
     ) t1
WHERE RNK = 1;

Это верно для всех псевдонимов столбцов, даже если они определены оконными функциями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...