ejemplos - Hive sql: count y avg
sql sum group by (1)
Recientemente estoy tratando de aprender Hive y tengo un problema con una consulta sql. Tengo un archivo json con algo de información. Quiero obtener el promedio para cada registro. Mejor en el ejemplo:
country times
USA 1
USA 1
USA 1
ES 1
ES 1
ENG 1
FR 1
luego con la siguiente consulta:
select country, count(*) from data;
Yo obtengo:
country times
USA 3
ES 2
ENG 1
FR 1
entonces debería salir el siguiente:
country avg
USA 0,42 (3/7)
ES 0,28 (2/7)
ENG 0,14 (1/7)
FR 0,14 (1/7)
No sé cómo puedo obtener esto de la primera mesa.
Lo intenté:
select t1.country, avg(t1.tm),
from (
select country,count(*)as tm from data where not country is null group by country
) t1
group by t1.country;
pero mi salida está mal.
¡¡Gracias por la ayuda!! BR.
Divida el recuento de cada grupo por el recuento total para obtener el resultado. Use Sub-Query
para encontrar la cantidad total de registros en su tabla
Prueba esto
select t1.country, count(*)/IFNULL((select cast(count(*) as float) from data),0)
from data
group by t1.country;