Unidad IX : GROUP BY – HAVING

GROUP BY – HAVING

           La función GROUP BY se utiliza para combinar funciones integradas, como SUM, AVG o COUNT, agrupando los resultados por aquellos atributos que lo permitan. La sintaxis es la siguiente:

SELECT "nombre1_columna", SUM("nombre2_columna")
FROM "nombre_tabla"
GROUP BY "nombre1-columna"

Ilustremos utilizando la siguiente tabla,

Tabla Store_Information

store_name

Sales

Date

Los Angeles

1500 €

05-Jan-2009

San Diego

250 €

07-Jan-2009

Los Angeles

300 €

08-Jan-2009

Boston

700 €

08-Jan-2009

Deseamos saber las ventas totales para cada negocio. Para hacerlo, ingresaríamos,

SELECT store_name, SUM(Sales)
FROM Store_Information
GROUP BY store_name

Resultado:

store_name

SUM(Sales)

Los Angeles

1800 €

San Diego

250 €

Boston>

700 €

       La palabra clave GROUP BY se utiliza cuando estamos seleccionado columnas múltiples desde una tabla (o tablas) y aparece al menos un operador aritmético en la instrucción SELECT. Cuando esto sucede, necesitamos GROUP BY todas las otras columnas seleccionadas, es decir, todas las columnas excepto aquellas que se operan por un operador aritmético.

   Otra cosa que la gente puede querer hacer es limitar el resultado según la suma correspondiente (o cualquier otra función de agregado). Por ejemplo, podríamos desear ver sólo los negocios con ventas mayores a 1 500 €.. En vez de utilizar la cláusula WHERE en la instrucción SQL, a pesar de que necesitemos utilizar la cláusula HAVING, que se reserva para funciones de agregados. La cláusula HAVING se coloca generalmente cerca del fin de la instrucción SQL, y la instrucción SQL con la cláusula HAVING. puede o no incluir la cláusula GROUP BY sin. La taxis para HAVING es,

SELECT "nombre1_columna", SUM("nombre2_columna")
FROM "nombre_tabla"
GROUP BY "nombre1_columna"
HAVING (condición de función aritmética)

Nota: La cláusula GROUP BY es opcional.

ingresaríamos,

SELECT store_name, SUM(sales)
FROM Store_Information
GROUP BY store_name
HAVING SUM(sales) > 1500

Resultado:

store_name

 

SUM(Sales)

Los Angeles

 

1800 €


Comentarios

Entradas populares de este blog

Unidad X : UPDATE - DELETE

Unidad II : Como crear una base de datos en MySQL