Saltar al contenido

Cláusula SQL GROUP BY y AFTER con ejemplos

¿Qué es la cláusula SQL Group by?

La cláusula GROUP BY es un comando SQL que se utiliza para secuencias de grupo que tienen los mismos valores. La cláusula GROUP BY se utiliza en la instrucción SELECT. Opcionalmente, se utiliza junto con funciones agregadas para proporcionar informes resumidos de la base de datos.

Eso es lo que hace resumen de datos de la base de datos.

Las consultas que contienen la cláusula GROUP BY se denominan consultas agrupadas y devuelven solo una fila para cada elemento agrupado.

Sintaxis de SQL GROUP AT

Ahora que sabemos qué es la cláusula GROUP BY de SQL, veamos la sintaxis de un grupo básico de tres consultas.

SELECT statements... GROUP BY column_name1[,column_name2,...] [HAVING condition];

AQUÍ

Agrupar usando un Una sola columna

Para ayudar a comprender el efecto de la cláusula SQL Group By, ejecutemos una consulta simple que devuelva todas las entradas de género de la tabla de miembros.

SELECT `gender` FROM `members` ;

gender
Female
Female
Male
Female
Male
Male
Male
Male
Male

Supongamos que queremos encontrar los valores únicos de género. Podemos usar la siguiente pregunta:

SELECT `gender` FROM `members` GROUP BY `gender`;

Ejecute el script anterior en Banco de trabajo MySQL contra Myflixdb nos da los siguientes resultados.

Tenga en cuenta que solo se han devuelto dos resultados. Esto se debe a que solo tenemos dos tipos de género masculino y femenino. La cláusula GROUP BY en SQL agrupó a todos los miembros “masculinos” y devolvió solo un conjunto. Hizo lo mismo con los miembros de “Mujeres”.

Agrupación usando varias columnas

Supongamos que queremos una lista de categorías de ID de película y los años correspondientes en los que se estrenaron.

Veamos el resultado de esta sencilla pregunta.

SELECT `category_id`,`year_released` FROM `movies` ;

category_idyear_released
12011
22008
NULL2008
NULL2010
82007
62007
62007
82005
NULL2012
71920
8NULL
81920

Hay muchos duplicados en el resultado anterior.

Ejecutemos la misma consulta usando el grupo tres en SQL:

SELECT `category_id`,`year_released` FROM `movies` GROUP BY `category_id`,`year_released`;

La ejecución del script anterior en MySQL workbench contra myflixdb da los siguientes resultados que se muestran a continuación.

category_idyear_released
NULL2008
NULL2010
NULL2012
12011
22008
62007
71920
81920
82005
82007

La cláusula GROUP BY se aplica a la identificación de la categoría y al año publicado para identificar único capas en nuestro ejemplo anterior.

Si el ID de categoría es el mismo pero el año de lanzamiento es diferente, entonces se trata en conjunto como único. Si el ID de categoría y el año de publicación son los mismos para más de una fila, entonces se considera un duplicado y solo se muestra una fila.

Agrupación y Funciones agregadas

Supongamos que queremos el número total de hombres y mujeres en nuestra base de datos. Podemos usar el siguiente script que se muestra a continuación para hacer precisamente eso.

SELECT `gender`,COUNT(`membership_number`)  FROM `members` GROUP BY `gender`;

La ejecución del script anterior en un banco de trabajo MySQL contra myflixdb nos da los siguientes resultados.

genderCOUNT('membership_number')
Female3
Male5

Los resultados que se muestran a continuación están agrupados por cada valor de género único publicado y el número de filas agrupadas se calcula utilizando la función agregada COUNT.

Restrinja los resultados de las preguntas utilizando el DESPUÉS cláusula

No siempre queremos agrupar todos los datos en una tabla separada. Habrá ocasiones en las que intentaremos restringir nuestros resultados a ciertos criterios. En tales casos, podemos usar la cláusula DESPUÉS

Supongamos que queremos saber todos los años de lanzamiento de la categoría de película con el ID 8. Usaremos el siguiente script para lograr nuestros resultados.

SELECT * FROM `movies` GROUP BY `category_id`,`year_released` HAVING `category_id` = 8;

La ejecución del script anterior en un banco de trabajo MySQL contra Myflixdb nos da los siguientes resultados que se muestran a continuación.

movie_idtitledirectoryear_releasedcategory_id
9Honey moonersJohn Schultz20058
5Daddy's Little GirlsNULL20078

Tenga en cuenta que nuestra cláusula GROUP BY solo se aplica a películas con una categoría de identificación 8.

Resumen

  • La cláusula GROUP BY SQL se utiliza para agrupar filas con los mismos valores.
  • La cláusula GROUP BY se utiliza junto con la instrucción SQL SELECT.
  • La instrucción SELECT utilizada en la cláusula GROUP BY solo puede usar nombres de columna, funciones agregadas, constantes y expresiones.
  • La cláusula SQL At se utiliza para restringir los resultados devueltos por la cláusula GROUP BY.
  • La cláusula MYSQL GROUP BY se utiliza para recopilar datos de varios registros y devolver registros organizados por una o más columnas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *