我正在尝试将 SQL 上的一个从 Oracle 迁移到 Hive。为了在 hive 上工作,我必须将 Merge 语句分解为 UPDATE/DELETE 和 INSERT。
请帮助我。我有我的拆分版本,但我不确定。
注意:出于其他原因,我没有使用 Hive MERGE。
合并声明:
MERGE INTO bonuses D
USING (SELECT employee_id, salary, department_id FROM employees
WHERE department_id = 80) S
ON (D.employee_id = S.employee_id)
WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01 WHERE (S.salary > 8000)
DELETE WHERE (S.salary >= 10000)
WHEN NOT MATCHED THEN INSERT (D.employee_id, D.bonus)
VALUES (S.employee_id, S.salary*.01)
WHERE (S.salary <= 8000);
表 DDL:
CREATE TABLE bonuses (employee_id NUMBER, bonus NUMBER DEFAULT 100);
CREATE TABLE employees ( employee_id NUMBER, salary NUMBER, department_id int);