1. FUNCIONES Sistemas de
información
DE SQL
Administrativos
Alejandro Vera Raimann
2. Cláusula GROUP BY
Combina registros con valores idénticos en la lista de campos especificados en un único registro. Si
incluye una función de agregado de SQL, como Suma o Cuenta en la instrucción SELECT, se crea un
valor de resumen.
Sintaxis
SELECTlistadecampos
FROM tabla
WHERE criterios
[GROUP BYlistadecamposdegrupo]
Una instrucción SELECT que contiene una cláusula GROUP BY consta de las siguientes partes:
PARTE DESCRIPCIÓN
Listadecampos:Nombre del campo o campos que se van a recuperar junto con cualquier alias de
nombre de campo, funciones de agregado de SQL, predicados de selección (ALL, DISTINCT,
DISTINCTROW o TOP) u otras opciones de la instrucción SELECT.
Tabla:Nombre de la tabla de la cual se recuperan los registros.
Criterios:Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor de base de
datos Microsoft Access agrupa los valores después de aplicar las condiciones WHERE a los
registros.
Listadecamposdegrupo:Nombres de hasta un máximo de 10 campos utilizados para agrupar
registros. El orden de los nombres de campo de listadecamposdegrupo determina los niveles de
agrupación desde el nivel más alto al nivel más bajo.
GROUP BY es opcional.
Los valores de resumen se omiten si no hay una función de agregado de SQL en la instrucción
SELECT.
Los valores Nulos de los campos GROUP BY se agrupan y no se omiten. No obstante, los valores
Nulos no se evalúan en ninguna función de agregado de SQL.
Utilice la cláusula WHERE para excluir filas que no desea que estén agrupadas; utilice la cláusula
HAVING para filtrar registros después de que hayan sido agrupados.
Todos los campos de la lista de campos SELECT deben estar incluidos en la cláusula GROUP BY o
estar incluidos como argumentos de una función de agregado de SQL.
3. Cláusula HAVING
Especifica qué registros agrupados se muestran en una instrucción SELECT con una cláusula
GROUP BY. Después de que GROUP BY combine los registros, HAVING muestra cualquier registro
agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING.
Sintaxis
SELECTlistadecampos
FROM tabla
WHEREcriteriosdeselección
GROUP BYlistadecamposdegrupo
[HAVINGcriteriosdegrupo]
Una instrucción SELECT que contiene una cláusula HAVING consta de las siguientes partes:
PARTE DESCRIPCIÓN
Listadecampos:Nombre del campo o campos que se van a recuperar junto con cualquier alias de
nombre de campo, funciones de agregado de SQL, predicados de selección (ALL, DISTINCT,
DISTINCTROW o TOP) u otras opciones de la instrucción SELECT.
Tabla:Nombre de la tabla de la cual se recuperan los registros.
Criteriosdeselección:Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor
de base de datos Microsoft Access agrupa los valores después de aplicar las condiciones WHERE a
los registros.
Listadecamposdegrupo:Nombres de hasta un máximo de 10 campos utilizados para agrupar
registros. El orden de los nombres de campo de listadecamposdegrupo determina los niveles de
agrupación desde el nivel más alto al nivel más bajo.
Criteriosdegrupo:Expresión que determina los registros agrupados que se muestran.
El HAVING es opcional.
HAVING es similar a WHERE, que determina los registros que se seleccionan. Después de que los
registros se agrupen con GROUP BY, HAVING determina qué registros se muestran:
SELECT CategoryID, Sum(UnitsInStock)
FROM Products
GROUP BY CategoryID
HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
Una cláusula HAVING puede contener hasta un máximo de 40 expresiones unidas por operadores
lógicos, como And y Or.
4. Cláusula ORDER BY
Ordena los registros resultantes de una consulta en un campo o campos especificados en orden
ascendente o descendente.
Sintaxis
SELECTlistadecampos
FROM tabla
WHEREcriteriosdeselección
[ORDER BY campo1 [ASC | DESC ][, campo2 [ASC | DESC ]][, ...]]]
Una instrucción SELECT que contiene una cláusula ORDER BY consta de las siguientes partes:
Listadecampos:Nombre del campo o campos que se van a recuperar junto con cualquier alias de
nombre de campo, funciones de agregado de SQL, predicados de selección (ALL, DISTINCT,
DISTINCTROW o TOP) u otras opciones de la instrucción SELECT.
Tabla:Nombre de la tabla de la cual se recuperan los registros.
Criteriosdeselección:Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor
de base de datos Microsoft Access ordena los valores después de aplicar las condiciones WHERE a
los registros.
Campo1, campo2:Nombres de los campos en los que se ordenan registros.
ORDER BY es opcional. Sin embargo, si desea que los datos se muestren ordenados, debe
utilizarla.
El criterio de ordenación predeterminado es ascendente (A a la Z, 0 a 9). Los dos ejemplos
siguientes ordenan los nombres de los empleados por los apellidos:
SELECTLastName, FirstName
FROM Employees
ORDER BYLastName;
SELECTLastName, FirstName
FROM Employees
ORDER BYLastName ASC;
Para ordenar en forma descendente (Z a la A, 9 a 0), agregue la palabra reservada DESC al final de
cada campo que desee ordenar en forma descendente. En el ejemplo siguiente se seleccionan los
salarios y se colocan en orden descendente:
SELECTLastName, Salary
FROM Employees
ORDER BY Salary DESC, LastName;