Cálculo de valores de totales
Puede utilizar las funciones de totales de SQL para calcular los valores basados en columnas enteras de datos. Los valores calculados pertenecen sólo a las filas que satisfacen la cláusula WHERE y, por lo tanto, están seleccionadas.
Una función de totales es una operación que obtiene su resultado de la utilización de valores de una o más filas. Una función de totales también se conoce con el nombre de función de columna. El argumento de una función de totales es un conjunto de valores que se obtienen de una expresión.
Puede utilizar las siguientes funciones de totales:
- SUM
- Devuelve el valor total.
- MIN
- Devuelve el valor mínimo.
- AVG
- Devuelve el valor medio.
- MAX
- Devuelve el valor máximo.
- COUNT
- Devuelve el número de filas seleccionadas.
- COUNT_BIG
- Devuelve el número de filas o de valores de un conjunto de filas o de valores. El resultado puede ser mayor que el valor máximo de un entero.
- XMLAGG
- Devuelve una concatenación de elementos XML de una colección de elementos XML.
Tan solo puede utilizar SUM y AVG con números. Puede utilizar MIN, MAX, COUNT y COUNT_BIG con cualquier tipo de datos incorporados.
ejemplos
- Ejemplo 1
- Esta consulta calcula,
para el departamento A00, la suma de los salarios de los empleados, el salario
mínimo, medio y máximo y el número de empleados del departamento:
SELECT SUM(SALARY) AS SUMSAL, MIN(SALARY) AS MINSAL, AVG(SALARY) AS AVGSAL, MAX(SALARY) AS MAXSAL, COUNT(*) AS CNTSAL FROM EMP WHERE DEPT = 'A00';La tabla de resultados es similar a la siguiente:
SUMSAL MINSAL AVGSAL MAXSAL CNTSAL ========= ======== ============== ======== ====== 128500.00 29250.00 42833.33333333 52750.00 3 - Ejemplo 2
- Puede utilizar (*) en las funciones COUNT y COUNT_BIG. En este ejemplo, COUNT (*) devuelve las filas que Db2 procesa basándose en la cláusula WHERE. Esta consulta cuenta el número de
empleados que se describen en la tabla EMP:
SELECT COUNT(*) FROM EMP; - Ejemplo 3
- Puede utilizar DISTINCT con las funciones SUM, AVG, COUNT y
COUNT_BIG. DISTINCT indica que la función seleccionada tan solo funciona
en los valores exclusivos de una columna. Esta consulta cuenta las distintas
ocupaciones de la tabla EMP:
SELECT COUNT(DISTINCT JOB) FROM EMP;Las funciones de totales como COUNT ignoran los nulos en los valores en los que operan. El ejemplo anterior cuenta los valores de ocupaciones diferentes que no son nulos.
Nota : No utilice DISTINCT con las funciones MAX y MIN porque su uso no afecta al resultado de dichas funciones.