У меня есть три многораздельных таблицы (разделы по годам) в Hive, и все таблицы имеют несколько разделов. Я присоединяюсь ко всем этим трем таблицам как часть моего требования. Теперь я хочу запустить этот sql только для последнего раздела, а не для созданных ранее.
Я пытался использовать max (partition) в предложении where, но, похоже, он не поддерживается
Я сделал что-то вроде ниже (не точный код. Просто концепция кода)
select
a.*,
b.*,
c.*
from table1 a
left join table2 b on a.ID = b.ID
left join table3 c on a.ID = c.ID
where
a.year = max(a.year) and
b.year = max(b.year) and
c.year = max(c.year)
Я получил эту ошибку
FAILED: SemanticException [Ошибка 10128]: строка 108: 23 Еще не поддерживается
место для UDAF 'max'
Я могу использовать несколько выражений where с подзапросом, содержащим «select max (year) from table» для всей таблицы, но это не представляется возможным. Есть идеи, как этого добиться?
UPDATE
Я пробовал предложение where с условиями ниже, но кажется, что в предложении where поддерживается только один suq-запрос. Не уверен, как решить эту проблему. Оценивая любые входные данные на этом
where
a.year in (select max(year) from table1) and
b.year in (select max(year) from table2) and
c.year in (select max(year) from table3