Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos
5-2 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agenda
• Funciones de grupo:
– Tipos y sintaxis
– Uso de AVG, SUM, MIN, MAX, COUNT
– Uso de la palabra clave DISTINCT en funciones de grupo
– Valores NULL en una función de grupo
• Agrupar filas:
– Cláusula GROUP BY
– Cláusula HAVING
• Anidamiento de funciones de grupo
5-3 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
¿Qué Son las Funciones de Grupo?
Salario máximo en
la tabla EMPLOYEES
5-4 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Tipos de Funciones de Grupo
• AVG
• COUNT
• MAX
• MIN
Funciones
• STDDEV de grupo
• SUM
• VARIANCE
5-5 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Grupo: Sintaxis
5-6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de las Funciones AVG y SUM
5-7 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de Funciones MIN y MAX
5-8 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Función COUNT
5-9 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Palabra Clave DISTINCT
5-10 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Grupo y Valores Nulos
5-11 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agenda
• Funciones de grupo:
– Tipos y sintaxis
– Uso de AVG, SUM, MIN, MAX, COUNT
– Uso de la palabra clave DISTINCT en funciones de grupo
– Valores NULL en una función de grupo
• Agrupar filas:
– Cláusula GROUP BY
– Cláusula HAVING
• Anidamiento de funciones de grupo
5-12 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Creación de Grupos de Datos
EMPLOYEES
4400
Salario medio en la
tabla EMPLOYEES para
9500
cada departamento
3500
6400
10033
5-13 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Creación de Grupos de Datos: Sintaxis de la
Cláusula GROUP BY
Puede dividir las filas de una tabla en grupos más pequeños
utilizando la cláusula GROUP BY.
SELECT column, group_function(column)
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY column];
5-14 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Cláusula GROUP BY
5-15 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Cláusula GROUP BY
5-16 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agrupación de Más de Una Columna
5-17 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Cláusula GROUP BY en Varias Columnas
5-18 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Consultas No Válidas Realizadas con las
Funciones de Grupo
Cualquier columna o expresión de la lista SELECT que no sea
una función de agregación debe estar en la cláusula GROUP BY:
5-19 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Consultas No Válidas Realizadas con las
Funciones de Grupo
• No puede utilizar la cláusula WHERE para restringir grupos.
• Debe utilizar la cláusula HAVING para restringir grupos.
• No puede utilizar las funciones de grupo de la cláusula WHERE.
SELECT department_id, AVG(salary)
FROM employees
WHERE AVG(salary) > 8000
GROUP BY department_id;
No puede utilizar la
cláusula WHERE para
restringir grupos
5-20 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Restricción de Resultados de Grupo
EMPLOYEES
5-21 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Restricción de Resultados de Grupo con la
Cláusula HAVING
Al utilizar la cláusula HAVING, el servidor de Oracle restringe
los grupos de la siguiente forma:
1. Agrupa las filas.
2. Aplica la función de grupo.
3. Muestra los grupos que coinciden con la cláusula HAVING.
5-22 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Cláusula HAVING
5-23 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Cláusula HAVING
5-24 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agenda
• Funciones de grupo:
– Tipos y sintaxis
– Uso de AVG, SUM, MIN, MAX, COUNT
– Uso de la palabra clave DISTINCT en funciones de grupo
– Valores NULL en una función de grupo
• Agrupar filas:
– Cláusula GROUP BY
– Cláusula HAVING
• Anidamiento de funciones de grupo
5-25 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Anidamiento de Funciones de Grupo
SELECT MAX(AVG(salary))
FROM employees
GROUP BY department_id;
5-26 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Prueba
5-27 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Resumen
5-28 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Práctica 5: Visión General
5-29 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.