2.2. Agrupamiento de registros
Img 13. Pasos del diseño de consultas.
Agrupación de registros.
|
La cláusula GROUP BY (... HAVING) permite agrupar en un solo registro todos aquellos cuyo valor del campo indicado sea idéntico. Opcionalmente permite seleccionar solamente los registros que cumplan una condición con la cláusula HAVING.
Se usa en combinación con funciones de agregado para añadir campos de resumen de los registros agregados.
SELECT Campo1, FUNCIÓN (Campo2) FROM Tabla WHERE Criterio GROUP BY Campo1 |
Verdadero Falso
Verdadero Falso
Verdadero Falso
Cuando en una consulta con GROUP BY sólo interesa el resumen en registros con valores determinados se usa la cláusula HAVING. Se suele definir está cláusula como el WHERE del GROUP BY, es decir, HAVING es a GROUP BY lo que WHERE es a SELECT.
Por ejemplo, se usa HAVING cuando además de consultar el número de pedidos enviados a cada provincia lo que se necesita es saber el número de pedidos enviados solamente a Madrid.
La sentencia se realiza introduciendo la claúsula HAVING después del campo de agrupación:
... GROUP BY Campo1 HAVING condición |
Ya dispones de una base de datos y de consultas diseñadas fácilmente mediante el asistente. Así que tienes una buena colección de sentencias SQL. Sólo tienes que editar las consultas en SQL y OOo Base te proporcionará la sentencia correctamente escrita.
Img 14 y 15. Datos y vista SQL de consulta Contar_pedidos
La cláusula HAVING también puede incluir criterios con operadores y funciones.
En el ejercicio anterior se podría haber seleccionado el registro cuyo valor del campo Total_pedido fuese mayor que 4. En este caso el resultado sería el registro:
Img 18 y 19. Datos y vista SQL consulta Contar_pedidos modificada.
En esta web puedes encontrar más ejemplos: sql_having_sum