Вложенный SELECT с предложением WHERE в Spark - PullRequest
0 голосов
/ 21 февраля 2019

У меня проблема с запуском SQL-запроса Spark, в котором используется вложенный выбор с предложением where.В приведенном ниже запросе table1 представляет временную таблицу из более сложного запроса.В конце я хочу заменить table1 этим запросом.

select * from (select * from table1) as table2 
where (product, price) 
in (select product, min(price) from table2 group by product)

Ошибка Spark, которую я получаю, говорит:

AnalysisException: 'Таблица или представление ненайдено: table2;

Как можно изменить запрос, чтобы он работал так, как задумано?

1 Ответ

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

subquery (то есть (select * from table1) as table2) не требуется, и он ограничен немедленным использованием после того, как subquery определено, что вы не можете использовать с предложением in или where, вместо этого вы можете использовать подзапрос correlated:

select t1.*
from table1 t1 
where t1.price = (select min(t2.price) from table1 t2 where t2.product = t1.product);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...