como sacar un promedio en una consulta sql?

publicado por: Anonymous

Podrían ayudarme a resolver esta duda que tengo.
Necesito que se muestre para cada tipo sanguíneo que cantidad de empleados la posee, mostrando también el porcentaje total de empleados de la empresa representa dicha cantidad.

introducir la descripción de la imagen aquí

Aquí el problema es que en porcentaje me muestra el numero de Id_Tipo en lugar de mostrar un porcentaje, en esta base de datos solo tengo 3 empleados, el porcentaje que espero seria un 33.33 % de cada uno.

solución

Te doy la bienvenida a Stackoverflow.

Para sacar el porcentaje puedes:

  • sacar el total de empleados que hay (en una subconsulta por ejemplo: SELECT COUNT(*) FROM empleado)
  • multiplicar ese total por 100
  • dividir el total de filas entre el total de empleados por 100

La consulta quedaría así:

SELECT 
    COUNT(*) AS Total,
    t.descripcion,
    ( COUNT(*) / (SELECT COUNT(*) FROM empleado)*100 ) `%`
FROM empleado e
    INNER JOIN tipo_sanguineo t ON e.tipo_sangre=t.id_tipo
GROUP BY e.tipo_sangre;

Salida:

Total   descripcion    %
-------------------------------
1       A+             33,3333
1       A-             33,3333
1       B+             33,3333

Código de prueba en línea

VER DEMO EN REXTESTER

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *