Saltar al contenido

¿Por qué Hive no puede reconocer el alias nombrado en la parte seleccionada?

Solución:

los where la cláusula se evalúa antes de la select cláusula, por lo que no puede hacer referencia a los alias seleccionados en su cláusula where.

Sin embargo, puede hacer referencia a los alias de una tabla derivada.

select * from (
  select user as u1, url as u2 from rank_test
) t1 where u1 <> "";

select * from (
  select user, count(*) as cnt from rank_test group by user
) t1 where cnt >= 2;

Nota al margen: una forma más eficiente de escribir la última consulta sería

select user, count(*) as cnt from rank_test group by user
having count(*) >= 2

Si mal no recuerdo, puede hacer referencia al alias en having es decir having cnt >= 2

Pude usar Alias ​​en mi declaración de selección de Hive usando el símbolo de tilde “.

SELECT COL_01 AS `Column_A`;

La solución anterior funcionó para la versión 1.2.1 de Hive.

Link de referencia

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *