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í.