Итак, у меня есть запрос SQL, и я пытаюсь преобразовать его, чтобы он мог работать на HiveQL 2.1.1.
SELECT p.id FROM page p, comments c, users u,
WHERE c.commentid= p.id
AND u.id = p.creatorid
AND u.upvotes IN (
SELECT MAX(upvotes)
FROM users u WHERE u.date > p.date
)
AND EXISTS (
SELECT 1 FROM links l WHERE l.relid > p.id
)
Это не работает на Hive QL, так как более 1 подзапроса (который не поддерживается)
EXISTS
или IN
замены с SQL на Hive SQL выполняются следующим образом:
WHERE A.aid IN (SELECT bid FROM B...)
можно заменить by:
A LEFT SEMI JOIN B ON aid=bid
Но я не могу придумать способ сделать это с помощью дополнительной функции MAX () .
Любая помощь очень ценится.