Cómo comparar dos tablas y devolver filas con diferencia con HIVE

Entonces digamos que tengo una tabla con aproximadamente 180 columnas y 100 loggings. Esta tabla está respaldada en una tabla temporal y la original se elimina. Después de esta migration (cambio) se ejecuta en una tubería que produce la misma tabla. Quiero comparar la tabla respaldada con la nueva y las filas (loggings) con cualquier diferencia para moverla a la 3ra tabla (tabla _result) así que lo hago:

INSERT OVERWRITE TABLE zakj_customers.customers_detail_result SELECT acct_id, IF (a.title != b.title, 1, 0) title, IF (a.fname != b.fname, 1, 0) fname, IF (a.dob != b.dob, 1, 0) dob, IF (a.cr_date != b.cr_date, 1, 0) cr_date FROM zakj_customers.customers_detail a LEFT OUTER JOIN zakj_customers.customers_detail_backup b ON (a.acct_id = b.acct_id) ORDER BY title DESC,fname DESC,dob DESC,cr_date DESC HAVING title > 0 AND fname > 0 AND dob > 0 AND cr_date > 0 ; 

Tan indiferente que esta consulta es incorrecta, no me interesa mucho SQL, y estoy obteniendo errores de syntax, por lo que no puedo juntarlos correctamente y en un ticket se me proporcionó en este formatting, lo que obviamente es incorrecto.

¿Alguien puede ver la forma en que esto podría hacerse?

Aclamaciones

Debe usar "caso cuando" en lugar de si:

 Case When a.title <> t.title then 1 Else 0 End title 

No escribiría teniendo sino la expresión en la condición where:

 INSERT Into zakj_customers.customers_detail_result SELECT acct_id, a.title, a.fname, dob, a.cr_date FROM zakj_customers.customers_detail a LEFT OUTER JOIN zakj_customers.customers_detail_backup b ON (a.acct_id = b.acct_id) Where b.acct_id is null or a.title <> t.title or a.fname <> b.fname or a.cr_date <> b.cr_date; 

"b.acct_id is null" es necesario para get los nuevos loggings porque <> los eliminaría.

(El pedido es totalmente innecesario al insert loggings).