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