Impala - Cláusula de tener
los Having La cláusula en Impala le permite especificar condiciones que filtran qué resultados de grupo aparecen en los resultados finales.
En general, el Having la cláusula se usa junto con group bycláusula; coloca condiciones sobre los grupos creados por la cláusula GROUP BY.
Sintaxis
A continuación se muestra la sintaxis del Havingcláusula.
select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]
Ejemplo
Supongamos que tenemos una tabla llamada customers en la base de datos my_db y su contenido es el siguiente:
[quickstart.cloudera:21000] > select * from customers;
Query: select * from customers
+----+----------+-----+-------------+--------+
| id | name | age | address | salary |
+----+----------+-----+-------------+--------+
| 1 | Ramesh | 32 | Ahmedabad | 20000 |
| 2 | Khilan | 25 | Delhi | 15000 |
| 3 | kaushik | 23 | Kota | 30000 |
| 4 | Chaitali | 25 | Mumbai | 35000 |
| 5 | Hardik | 27 | Bhopal | 40000 |
| 6 | Komal | 22 | MP | 32000 |
| 7 | ram | 25 | chennai | 23000 |
| 8 | rahim | 22 | vizag | 31000 |
| 9 | robert | 23 | banglore | 28000 |
+----+----------+-----+-----------+--------+
Fetched 9 row(s) in 0.51s
A continuación se muestra un ejemplo de uso Having cláusula en Impala -
[quickstart.cloudera:21000] > select max(salary) from customers group by age having max(salary) > 20000;
Esta consulta inicialmente agrupa la tabla por edad y selecciona los salarios máximos de cada grupo y muestra esos salarios, que son superiores a 20000 como se muestra a continuación.
20000
+-------------+
| max(salary) |
+-------------+
| 30000 |
| 35000 |
| 40000 |
| 32000 |
+-------------+
Fetched 4 row(s) in 1.30s