Nakp: porque en oracle no se porque razon, si utilizas la funcion AVG debes agrupar obligatoriamente... no me preguntes porque
Yo te lo explico si quieres, tienes que agrupar, porque tienes que decirle un rango en el cual hacer la media. La formula de la media es:
sumaDeDatos/NumeroDeDatosPor ello al agrupar, le das a la funcion el parametro: NumeroDeDatos. Porque aunque tu lo veas muy claro en plan: pues su es la media de la columna A, pues nada mas que la pongo y ya esta, pues no, porque el programa lo que hace es recorrerlo campo a campo y no los cuenta, solo los muestra, a menos que le hagas un group by.
Quizas no me he explicado del todo bien, no estudie muy a fondo a programacion, soy del ciclo de sistemas y lo de la tabla de indices por ejemplo, no tengo ni idea, aunque insisti en que me lo enseniasen.
KuraraGNU:
no entiendo mucho el INNER JOIN pero la verdad q si.. no se para q use el HAVING si con un AND creo se puede...
no entiendo mucho lo del inner join, ademas me tira un error.. pero siguiendo tu idea lo q hice fue:
SELECT c.ALCCIU, c.HABCIU, c.NOMCIU
FROM CIUDADES C, PLANTAS P, SECTORES S, GENERADORES G
WHERE C.NOMCIU = P.NOMCIU
AND S.CODPLAN = G.CODPLAN
AND S.NUMSEC = G.NUMSEC
AND S.NIVELSEC = 3
AND KWGEN >= (SELECT AVG(G.KWGEN)
FROM GENERADORES G
GROUP BY G.KWGEN);
ahora no me tira mas error pero nunca me devuelve nada tampoco, chequeare a ver si es por los datos de prueba xD
Algo haria mal, yo es que me leo los errores y miro donde me he podido confundir.