ejemplos avg sql count hive average

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;