У меня есть простая задача выполнить соединение между «клиентом» (родительская таблица) и таблицей «заказ» (дочерняя таблица), где объединенная строка дочерней таблицы имеет последнее (максимальное) значение даты заказа. Если бы Impala была похожа на любой механизм SQL, вы могли бы написать:
select * from customer c
join `order` o on o.customer_id=c.id
and o.id=(
select o2.id
from `order` o2
where o2.customer_id=c.id
order by o2.order_date
desc limit 1
);
Очевидно, что impala отличается, потому что я просто получаю следующую ошибку:
Error while compiling statement: FAILED: ParseException line 4:1 cannot recognize input near 'select' 'o2' '.' in expression specification
Я попытался заменить «и» на «где» между подзапросами, но это не помогло.