De DBF a SQL (5). Las funciones agrupadas

Hay algunas tareas que se realizan tan pero tan frecuentemente que se decidió incluirlas en el estándar SQL. Esas tareas son:

  • Sumar
  • Contar
  • Hallar un promedio
  • Hallar el mayor valor
  • Hallar el menor valor

Las funciones que realizan esas tareas se llaman:

  • SUM(). Para sumar
  • COUNT(). Para contar
  • AVG(). Para hallar un promedio
  • MAX(). Para hallar el mayor valor
  • MIN(). Para hallar el menor valor

Como típicamente esas funciones involucran a más de una fila, o sea a un grupo de filas, se las denomina funciones agrupadas. Para usarlas, dentro del paréntesis debemos escribir sus argumentos.

Captura 1. Hallando el total de sumar la columna MVC_TOTALX

Dentro de la función agrupada podemos escribir varias columnas, si queremos. Algo como:

Captura 2. Escribiendo dos columnas en la función agrupada SUM()

También, como ya vimos en un artículo anterior, podemos usar un alias para cambiar el nombre de la columna.

Captura 3. Poniéndole un alias al nombre de la columna

En nuestro SELECT además de usar una función agrupada también podemos establecer una condición con la cláusula WHERE.

Captura 4. Estableciendo una condición a la función agrupada

En el ejemplo de la Captura 4. se halló el total vendido en el año 2.013

Para saber cuantas filas tiene una tabla podemos escribir:

Captura 5. Para hallar la cantidad de filas de una tabla

Desde luego que también aquí podemos poner una condición. Por ejemplo, para saber cuantas de esas filas corresponden al año 2.013 se podría escribir:

Captura 6. La cantidad de filas correspondientes al año 2.013

Para saber cual es el mayor valor que existe en la columna MVC_TOTALX se puede escribir:

Captura 7. El mayor valor encontrado en la columna MVC_TOTALX

Y también, si lo deseamos, podemos observar al mismo tiempo los valores devueltos por varias funciones agrupadas, por ejemplo:

Captura 8. Mostrando varias funciones agrupadas al mismo tiempo

Y así, en una sola fila estamos observando los valores devueltos por las funciones agrupadas.

Conclusión:

Algunas tareas son tan comunes que se las estableció en el estándar SQL. Como normalmente involucran a varias filas se las denomina funciones agrupadas. Sus nombres son: SUM(), COUNT(), AVG(), MAX(), MIN(). Algunos motores SQL tienen más funciones agrupadas pero esas cinco son las que existen en todos los motores.

Artículos relacionados:

De DBF a SQL (1). Introducción

De DBF a SQL (2). Reemplazando comandos

De DBF a SQL (3). Entendiendo a los cursores

De DBF a SQL (4). Ejemplos de usar SELECT con una sola tabla

De DBF a SQL (6). Agrupando filas

De DBF a SQL (7). Poniéndoles condiciones a los grupos

De DBF a SQL (8). Ordenando las filas

De DBF a SQL (9). Uniendo tablas

De DBF a SQL (10). Obteniendo las primeras filas de una tabla

De DBF a SQL (11). Relacionando una tabla con otra tabla

De DBF a SQL (12). Relacionando una tabla consigo misma

De DBF a SQL (13). Relacionando a varias tablas entre sí

De DBF a SQL (14). Más sobre el uso de DISTINCT

De DBF a SQL (15). Usando subconsultas

De DBF a SQL (16). Más sobre las subconsultas

De DBF a SQL (17). Ejemplos de subconsultas

De DBF a SQL (18). Paginación

De DBF a SQL (19). Hallando los porcentajes sobre un total

De DBF a SQL (20). Los operadores especiales de comparación

De DBF a SQL (21). La técnica de los dos cursores

De DBF a SQL (22). Optimizando el uso del operador de comparación especial IN

De DBF a SQL (23). Usando la función CAST()

De DBF a SQL (24). Buscando texto

De DBF a SQL (25).  Creando tablas y cursores

De DBF a SQL (26). INSERT, UPDATE, y DELETE, con subconsultas

De DBF a SQL (27). Entendiendo Cliente/Servidor

De DBF a SQL (28). Conectándose a un Servidor

De DBF a SQL (29). Las cadenas de conexión ODBC a los motores SQL más populares 

De DBF a SQL (30). Conectándose mediante ADO a las bases de datos

De DBF a SQL (31). Optimizando la escritura de los SELECT

De DBF a SQL (32). Mejorando la estética de los SELECT 

De DBF a SQL (33). Usando la función SQLEXEC()

De DBF a SQL (34). Enviándole parámetros a la función SQLEXEC()

El índice del blog VFPavanzado