Conceptos básicos de MySQL: agrupar agrupar por

Autor: Dian mundo ordinario 

Fuente: desarrollo de la base de datos SQL

La serie de conocimientos básicos de mysql tiene nuevos puntos de conocimiento. Hoy quiero presentarles el grupo GROUP BY.

Función GROUP BY

La instrucción GROUP BY se utiliza en combinación con funciones agregadas para agrupar el conjunto de resultados en función de una o más columnas.

Sintaxis GROUP BY

SELECCIONAR nombre_columna, 

función_agregada (nombre_columna)

FROM nombre_tabla

DONDE column_name valor del operador

GROUP BY nombre_columna;

Hoja de datos de muestra

Tomemos las mesas de clientes y pedidos como ejemplo:

表 clientes

Órdenes de mesa

GRUPO POR ejemplo

Consulta cuántos clientes viven en cada ciudad. Podemos escribir SQL así:

SELECCIONE ciudad, CUENTA (*) COMO número de clientes 
DE Clientes 
GRUPO POR ciudad

resultado:

De lo anterior, podemos ver que GROUP BY agrega clientes con el mismo nombre de ciudad y luego calcula su número a través de la función COUNT. Antes de usar la cláusula GROUP BY, necesita conocer algunas reglas importantes.

  • La cláusula GROUP BY puede contener cualquier número de columnas. Esto hace posible anidar grupos y proporcionar un control más detallado sobre la agrupación de datos.
  • Cada columna listada en la cláusula GROUP BY debe ser una columna de recuperación o una expresión válida (pero no una función agregada).
  • A excepción de las declaraciones de cálculo agregadas, cada columna de la declaración SELECT debe incluirse en la cláusula GROUP BY.
  • Si hay un valor NULL en la columna de agrupación, NULL se devolverá como agrupación. Si hay varias filas de valores NULL en la columna, se agruparán.
  • La cláusula GROUP BY debe aparecer después de la cláusula WHERE y antes de la cláusula ORDER BY.

En contraste con el ejemplo anterior, podemos encontrar que el uso de GROUP BY cumple con las estipulaciones anteriores: Además de la función agregada COUNT, la ciudad aparece en la declaración SELECT y la cláusula GROUP BY.

GROUP BY combinación de varias mesas

Para consultar cuántos pedidos se generan en cada ciudad, podemos escribir SQL así.

SELECCIONE c. Ciudad, COUNT (o. ID de pedido) COMO cantidad de pedido 
DESDE Clientes c 
IZQUIERDA UNIR ÓRDENES o EN c. ID de cliente = o. ID de cliente 
GRUPO POR c. Ciudad

El resultado es:

Debido a que no hay usuarios en Beijing y Hangzhou para comprar el producto, la cantidad del pedido es 0.

GRUPO POR peso de fila

GROUP BY excluirá automáticamente los datos duplicados al agrupar. Agrupe ciudades y provincias, pero no realice operaciones de agregación:

SELECCIONE ciudad, provincia 
DE clientes 
GRUPO POR ciudad, provincia

El resultado es:

Esta función es la misma que la función de palabra clave DISTINCT en SQL, pero habrá diferencias en el rendimiento, por lo que no la expandiré aquí.

 

Supongo que te gusta

Origin blog.csdn.net/yoggieCDA/article/details/108866776
Recomendado
Clasificación