Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Agrupación de elementos en SQL


Pasamos a explicar el funcionamiento de las cláusulas GROUP BY y HAVING.


10/6/08 - Con estas clausulas vamos a poder hacer consultas más complejas y avanzadas que nos permitiran filtrar mejor la información o sacar conjuntos de informaciones ordenadas de una determinada forma.

La sentencia select nos deja agrupar uno o más conjuntos de filas si utilizamos la cláusula gruop by por las columnas especificas y el orden especificado, siendo el formato el siguiente:

select ...
from ...
group by columna1, columna2, columnaN....
having condicion
order by....


Los datos seleccionados en la sentencia que lleva el group by deben ser o una constante, o una funcion de grupo o una columna que aparezca en el group by también.

En general group by lo utilizamos para calcular propiedades de uno o más conjuntos de filas.

La cláusula having es muy parecida a where pero funciona para grupos de filas y controla cúal de los conjuntos de filas se visualiza.
Os pongo un ejemplo para que se entienda mejor:

Visualizar el número de alumnos por cada asignatura si el departamento tiene mas de 4 alumnos.
select asignatura, count(*) from alumno group by asignatura having count(*) > 4;
También podriamos ordenar dicha consulta añadiendo un order by al final, por ejemplo por asignatura, quedando asi la consulta:

select asignatura, count(*) from alumno group by asignatura having count(*) > 4 order by asignatura;

Podemos realizar consultas un poco más complicadas utilizando también funciones de grupo. Por ejemplo:

Visualizar el número de departamento, la suma de los salarios, el salario máximo y el salario mínimo de cada departamento.
select departamento, sum(salario) as suma, max(salario) as maximo, min(salario) as minimo from empleado group by departamento;

Con esta sentencia nos saldrian 4 columnas, en la primera nos saldria el departamento, en la segunda la suma de todos los salarios de ese departamento, en la siguiente el salario más alto y el la última el salario más bajo del departamento.

Con estas cláusulas ya puedes realizar casi cualquier consulta, por lo que viene en próximos artículos ya es algo más complicado, pero nada imposible.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 2 categorias relacionadas
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Sara Alvarez*
Equipo DesarrolloWeb.com
URL: http://www.desarrolloweb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Manual de iniciación a la programación

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Programación
+ Entrar en Lenguaje SQL


 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Manual de iniciación a la programación
Categorías
+Programación
+Lenguaje SQL

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia