EXES
EL MODELO RELACIONAL
EL LENGUAJE SQL
FUNCIONES SQL
FUNCIONES DE GRUPO
JOIN
SUBCONSULTAS
D.M.L.
D.D.L.
VISTAS
ENTORNO SQL PLUS
PL/SQL
GENERALIDADES PL/SQL
CURSORES
EXCEPCIONES
FUNCIONES
CRÉDITOS
LA COMPAÑÍA
 
Área de Base de datos
  Manual de Iniciación a Oracle
www.exes.es
Tel: 902 360 417
   Principal
 Exes   Contactar 
Tema 4 Funciones de Grupo | Manual de Iniciación a Oracle

TEMA 4
FUNCIONES DE GRUPO

S.Q.L.
Funciones de Grupo (I)

  • AVG ([DISTINCT | ALL] n)
    • Valor promedio de n.
  • COUNT ({* | [DISTINCT | ALL |] expr})
    • Cantidad de filas con expr no nulo. Con * se cuentan todas las filas incluyendo duplicadas y valores nulos.
  • MAX ([DISTINCT | ALL] expr)
    • Valor máximo de expr.
  • MIN ([DISTINCT | ALL] expr)
    • Valor mínimo de expr., ignorando los valores nulos.

S.Q.L.
Funciones de Grupo (II)

  • STDDEV ([DISTINCT | ALL] n)
    • Desviación estándar de n, ignorando los valores nulos.
  • SUM ([DISTINCT | ALL] n)
    • Suma los valores de n, ignorando los valores nulos.
  • VARIANCE ([DISTINCT | ALL] n)
    • Varianza de n, ignorando los valores nulos
  • Estas funciones no se pueden usar en la cláusula WHERE.

S.Q.L.
Funciones de grupo y Nulos

  • Las funciones de grupo IGNORAN los valores nulos de las columnas.
  • ¿Qué resultado obtendríamos se calculamos la media de la comisión de los empleados?
Funciones de grupo y nulos

S.Q.L.
NVL y funciones de grupo

  • Esta media no es correcta porque se han ignorado las filas cuya comisión es nula.
  • Solución: Uso de la función NVL para forzar a las funciones de grupo que admitan los valores nulos.
NVL y funciones de grupo

S.Q.L.
Sintaxis de GROUP BY

Sintaxis de GROUP BY
  • Crea grupo de datos, por lo tanto se pueden usar funciones de grupo para devolver información resumida para cada grupo.

S.Q.L.
Uso de GROUP BY (I)

  • Si se incluye una función de grupo en una cláusula SELECT, no se puede seleccionar resultados individuales a menos que la columna
    aparezca en la cláusula GROUP BY.
  • No se pueden usar alias en GROUP BY.
  • Por defecto, tras un GROUP BY, las filas se ordenan de forma ascendente
  • Ejemplo:
    >SQL> SELECT deptno, AVG(sal) FROM emp GROUP BY deptno;

S.Q.L.
Uso de GROUP BY (II)

  • La columna referenciada por GROUP BY no es necesario seleccionarla.
  • Todas las columnas mencionadas en la SELECT que no son funciones de grupo, tienen que estar en la cláusula GROUP BY.
  • Se pueden formar agrupaciones sobre múltiples columnas:
    >SQL> SELECT deptno, job, sum(sal) FROM emp GROUP BY deptno, job;

S.Q.L.
Consultas no válidas

  • Cualquier columna o expresión en la SELECT que no sea una función agregada, tiene que ser especificada en la cláusula GROUP BY
    SQL> SELECT deptno, COUNT(ename) FROM emp;
  • No puede usar una cláusula WHERE para restringir grupos. Utilice la cláusula HAVING para restringir grupos.
    SQL> SELECT deptno, AVG(sal) FROM emp WHERE AVG(sal) > 2000 GROUP BY deptno;

S.Q.L.
Cláusula HAVING

  • Use la cláusula HAVING para restringir grupos:
    • Los registros son agrupados
    • Se aplica la función de grupo
    • Los grupos que se corresponden con la cláusula HAVING se visualizan (condición TRUE).
  • HAVING puede preceder a GROUP BY, pero se recomienda que se ponga en primer lugar GROUP BY porque es más lógico. (1º se
    calculan grupos y posteriormente se calcula HAVING sobre esos gpos.).

S.Q.L.
Sintaxis de HAVING

Sintaxis de HAVING
··> Ver todos los cursos
··> Si necesitas más información, contáctanos aquí
 
 
 
Sello de Calidad   Sello de Calidad
  EXES - C/ Albasanz, 14 Bis, 1-C. 28037 Madrid - Tel: 902 360 417 Fax: 902 931 305 - exes@exes.es