Función de grupo de MySQL y consulta de grupo


Base de datos utilizada: dirección de enlace

Uno, función de agrupación

1. Clasificación

  • contar: obtener el número de registros
  • suma: suma
  • avg: toma el promedio
  • max: toma el número máximo
  • min: toma el número más pequeño

2. Resumen

  • La función de agrupación también se denomina función de procesamiento multilínea (entrada de varias líneas, salida de una línea)
  • La función de agrupación ignora automáticamente los valores nulos, no es necesario agregar manualmente las condiciones where para excluir los valores nulos
  • Las funciones de agrupación se pueden utilizar en combinación entre sí
  • La función de agrupación se utiliza generalmente junto con agrupar por
  • Se puede usar en combinación con distintos (los distintos solo pueden aparecer en la parte superior de todos los campos y varios campos indican la deduplicación conjunta, que es la deduplicación del conjunto de resultados de la consulta sin cambiar los datos de la tabla)
  • La función de agrupación no se puede utilizar directamente después de la instrucción where:
    porque cualquier función de agrupación se ejecuta después de la ejecución de la instrucción group by, y el group by se ejecuta después de la ejecución de where

Dos, cuenta

  • contar (*) significa obtener todos los registros, no ignorar nulos, es decir obtener registros nulos; en lugar de contar el número de datos en un campo, es el número total de registros (no relacionados con un campo)
  • Usando count (nombre del campo), ignorando nulo, es decir, no se obtendrá ningún registro nulo; indicando el número total de datos en el campo estadístico que no es nulo
  • Obtener todos los registros en la tabla sc
SELECT COUNT(*) FROM sc
  • El número de registros cuyos resultados no son nulos.
SELECT COUNT(grade) FROM sc
  • Análisis de eficiencia
    En el motor de almacenamiento MyISAM, count ( ) es muy eficiente
    ,
    mientras que en el motor de almacenamiento InnoDB, count ( ) y count (grade) tienen una eficiencia similar.

Suma tres

  • Obtiene la suma de una columna, se ignorará nulo
  • Cuando se utiliza la función sum () de MySQL, si no se obtienen datos de acuerdo con las condiciones de la consulta, el resultado después de sum () será nulo en lugar de 0;
    si se obtienen varios datos de acuerdo con las condiciones de la consulta, pero el campo de suma en estos datos, algunos tienen valores, otros son nulos, luego sum () también obtendrá el resultado correcto. En resumen, para garantizar el uso correcto y riguroso, cuando use la función sum () en el futuro, debe usar ifnull (sum (columnName), 0)
  • Obtenga todos los resultados y
SELECT SUM(grade) FROM sc

Cuatro, promedio

  • Toma el promedio de una columna
  • Se puede combinar con la función round () para consultar el porcentaje de datos especificado
  • Toma el promedio
SELECT AVG(grade) FROM sc
  • Consultar el porcentaje de puntuaciones superiores a 70
SELECT ROUND(AVG(grade > 70),2) FROM sc

Cinco, máximo

  • Obtenga el valor máximo de una columna
  • Consultar la puntuación máxima
SELECT MAX(grade) FROM sc

Seis, min

  • Obtenga el valor mínimo de una columna
  • Comprobar puntuación mínima
SELECT MIN(grade) FROM sc

Siete, uso combinado

SELECT COUNT(*),SUM(grade),AVG(grade),MAX(grade),MIN(grade) FROM sc

8. Consulta grupal

  • Utilice principalmente grupo por y teniendo
  • Si hay una instrucción group by en la instrucción SQL, entonces la instrucción select solo puede ser seguida por la función de agrupación + el campo que participa en la agrupación , que no tiene significado en MySQL, pero se informa un error en Oracle
  • Si desea filtrar los datos agrupados de nuevo, es necesario utilizar el tener la cláusula
  • El orden de ejecución de la función de agrupación:
    consulta de datos según las condiciones
    Agrupación y
    filtrado por tener que obtener los datos correctos
  • Consultar las calificaciones promedio agrupadas por número de alumno
SELECT AVG(grade) FROM sc GROUP BY sno
  • Agrupe por número de alumno para consultar puntuaciones medias superiores a 70
SELECT AVG(grade) FROM sc GROUP BY sno HAVING AVG(grade) > 70

Presupuesto, seleccione resumen del extracto

1. Un formato de declaración de selección completo:

seleccionar el campo
del nombre de la tabla
donde …….
agrupar por ………
teniendo ……. (existe para filtrar datos agrupados, es decir, no puede aparecer por separado)
ordenar por ………

2. Orden de ejecución de la declaración

  1. Primero ejecute la instrucción where para filtrar los datos originales
  2. Realizar grupo por grupo
  3. Realizar operaciones con datos agrupados
  4. Ejecutar seleccionar para seleccionar datos
  5. Realizar orden por clasificación
  • Principio: Los datos que se pueden filtrar en dónde, intente filtrar en dónde, la eficiencia es mayor. El filtrado de tener es filtrar los datos después de la agrupación

Supongo que te gusta

Origin blog.csdn.net/LvJzzZ/article/details/108991223
Recomendado
Clasificación