El grupo por cláusula en SQL le permite agregar un conjunto de filas que tienen el mismo valor en una sola entidad/grupo. Piense en ello como una forma de resumir un conjunto de filas con valores similares en una partición.
Por ejemplo, podemos clasificar todos los videos del mismo canal de YouTube en un solo grupo. A menudo encontrará el grupo por cláusula utilizado junto con otras funciones agregadas como Max, Sum, AVG, etc.
Aunque el grupo por cláusula se explica por sí mismo, no puede ser fácil cuando necesita agrupar los datos por semana.
Grupo SQL por semana
Supongamos que tiene una tabla que contiene la información que se muestra a continuación:
Crear empleados de la mesa (
ID Clave primaria en serie,
Full_name Varchar (255),
Envíe un correo electrónico a Varchar (255),
Departamento Varchar (100),
Fecha de inicio_date,
bool activo,
Categoría Varchar (50)
);
Insertar en empleados (Full_Name, correo electrónico, departamento, inicio_date, activo, categoría)
VALORES
('Meghan Edwards', '
[email protected] ',' Game Development ',' 2016-06-22 ', verdadero,' Dev-G1 '),
('Sam Davis', '
[email protected] ',' Game Development ',' 2014-01-04 ', falso,' dev-g1 '),
('Taylor Miller', '
[email protected] ',' Game Development ',' 2019-10-06 ', verdadero,' dev-g1 '),
('Wilson Smitty', '
[email protected] ',' Desarrollador de bases de datos ',' 2016-12-23 ', True,' Dev-DB1 '),
('Barbara Moore', '
[email protected] ',' desarrollador de bases de datos ',' 2015-12-23 ', verdadero,' dev-db1 '),
('Raj Chan',
[email protected] ',' Desarrollador de bases de datos ',' 2017-12-23 ', falso,' dev-db1 '),
('Susan Brown', '
[email protected] ',' DevOps Engineer ',' 2011-12-23 ', verdadero,' Dev-Ops1 '),
('Marial Anderson', '
[email protected] ',' DevOps Engineer ',' 2015-12-23 ', True,' Dev-Ops1 '),
('Nancy Thomas', '
[email protected] ',' DevOps Engineer ',' 2014-12-23 ', falso,' dev-ops1 ');
Para agrupar los datos anteriores en función de la semana, podemos usar la función de extracto en SQL. El extracto () le permite extraer una parte específica de una fecha.
La sintaxis es como se muestra:
Extracto (parte desde la fecha);
Por lo tanto, para extraer la semana de una fecha, podemos pasar el parámetro de la pieza como semana seguida de la fecha literal.
Considere un ejemplo a continuación:
Seleccione Extracto (Semana de la marca de tiempo '2022-04-08 15:57:54.937148+03 ');
Nota: El ejemplo anterior se ilustra usando PostgreSQL. En algunas bases de datos, no necesita especificar la cláusula de desde.
La consulta anterior debería regresar:
EXTRACTO
---------
14
Por lo tanto, la marca de tiempo anterior es de la semana 14 del año.
Podemos pasar este valor al grupo por cláusula como se muestra:
SELECCIONAR
Extracto (semana de inicio_date) como semana,
Contar (id) como id
De empleados
Grupo por extracto (semana de start_date);
Esto debería volver:
Clausura
Esta guía le mostró cómo usar el grupo por cláusula en SQL y la función de extracto a los registros del grupo basados en la semana.