Para grupo por comprensión personal

Agrupar por

agrupar por, como su nombre indica, es agrupar datos. O se entiende que los datos se deduplican de acuerdo con el campo agrupado, y solo se conserva una pieza de datos para cada valor en este campo.

Pero cómo operar toda la información de datos en este grupo, por ejemplo, quiero mostrar estadísticas sobre la información de datos de este grupo, entonces necesito usar la función de agregación.

HAVING es equivalente a la detección condicional, pero es diferente de WHERE screening. HAVING es filtrar por objetos GROUP BY.

Hay otra forma de usar: usar los datos agrupados como una tabla temporal y luego usar select para consultas.

select data.Email  from 
(select *,count(*) as numbers from person group by Email ) as data 
where data.numbers >1;

El sentimiento personal grupal es un azúcar sintáctico, los pasos principales son los siguientes: clasificación grupal por correo electrónico

  1. Primero divida la tabla en n tablas pequeñas de acuerdo con la agrupación especificada. Tenga en cuenta que en el proceso de la tabla de diferencias, los registros de datos que no cumplan con la condición where se eliminarán

    El campo de correo electrónico de cada tabla pequeña aquí es el mismo.

  2. De acuerdo con restricciones, como select count (), que cuenta para procesar los registros en cada tabla pequeña, generalmente solo puede realizar operaciones estadísticas, como el promedio, el valor máximo

  3. Luego tome un dato en cada tabla pequeña.

    1. Si hay una función de agregación, se devuelve el resultado de la función de agregación + el registro de datos empalmado a partir de los primeros datos en la tabla pequeña
    2. No hay una función agregada, devuelve directamente el primer registro de la tabla pequeña
  4. Finalmente, el valor de registro devuelto por cada tabla pequeña se divide en una tabla completa.


Supongo que te gusta

Origin www.cnblogs.com/jianga/p/12693163.html
Recomendado
Clasificación