Calculo de Porcentajes

Para debatir interrogar o exponer cualquier duda o sugerencia sobre el curso SQL desde cero.

Calculo de Porcentajes

Notapor Felishuco » Mié Jul 10, 2013 10:46 am

Buenos días a todos.
Lo primero de todo, me gustaría felicitar al autor del manual y de la página por que me está resultando sumamente útil y ameno aprender SQL con este método.
Soy principiante de SQL (nivel muy básico, y sé algo de programación, java y linux), estoy siguiendo este curso desde cero y tengo una pequeña duda. Es en la lección 6, acerca de la parte del cálculo de medias, sumatorios y porcentajes.
El manual dice que para calcular el porcentaje de todos los salarios y mostrarlos, lo primero sería hacer la suma de salarios con la funcion sum(SALARIOS) y después hacer una consulta con el valor obtenido, siendo:
select NOMBRE, APELLIDOS, SALARIO / 5525.5 * 100 as PORCENTAJE from EMPLEADOS.

Me gustaría saber su hay alguna forma de hacer esto dinámico, a medida que se va insertando, ya que de esta forma estoy limitado por el numero de datos y al insertar nuevos datos en la tabla tendría que calcular otra vez todo. He buscado en internet y en la página de StackOverflow comentan que sería posible hacerlo así:

select SALARIO*100/(select sum(SALARIO) from EMPLEADOS) from EMPLEADOS

Pero la sentencia no me funciona en el banco de pruebas, me da error de filtro de seguridad. Sería posible hacerlo así? Habría alguna otra forma? He pensado en guardar el valor de la media en una variable que defino y luego usarla en la siguiente consulta (tal como podría hacer en java):

int SUMA = select sum(SALARIOS)*100 from EMPLEADOS
select SALARIO/SUMA from EMPLEADOS as PORCENTAJE

Pero no sé si en SQL se pueden definir variables y almacenar estos resultados. Habría alguna forma de hacerlo?

Muchísimas gracias!
Un saludo
Alegría, Esfuerzo, Detalles e Ilusión.
Felishuco
 
Mensajes: 1
Registrado: Mié Jul 10, 2013 10:28 am
Ubicación: Madrid

Re: Calculo de Porcentajes

Notapor Pere » Jue Jul 11, 2013 7:09 pm

Hola Felishugo

Lo que tu planteas es perfectamente correcto, es verdad que las subconsultas no pasan el filtro de seguridad del banco de pruebas.

También es posible hacerlo guardando el cálculo intermedio en una variable dentro de un programa java por ejemplo o php. Pero vamos, la solución basada en subconsulta es perfectamente válida y más cómoda de implementar a mi entender.


Gracias por participar.

Saludos.
Pere
 
Mensajes: 74
Registrado: Mar Feb 02, 2010 9:44 pm


Volver a Soporte SQL desde cero

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 30 invitados