Groupe SQL par semaine

Groupe SQL par semaine
La clause Group By dans SQL vous permet d'agréger un ensemble de lignes qui ont la même valeur dans une seule entité / groupe. Considérez-le comme un moyen de résumer un ensemble de lignes avec des valeurs similaires en une seule partition.

Par exemple, nous pouvons classer toutes les vidéos de la même chaîne YouTube en un seul groupe. Vous trouverez souvent la clause Groupe par utilisation en conjonction avec d'autres fonctions agrégées telles que Max, Sum, AVG, etc.

Bien que la clause Group By soit explicite, elle ne peut pas être facile lorsque vous avez besoin de regrouper les données d'ici la semaine.

Groupe SQL par semaine

Supposons que vous ayez un tableau contenant les informations indiquées ci-dessous:

Créer des employés de table (
Clé primaire en série ID,
full_name varchar (255),
Email Varchar (255),
Département Varchar (100),
Date start_date,
bool actif,
Catégorie Varchar (50)
));
Insérer dans les employés (full_name, e-mail, département, start_date, actif, catégorie)
VALEURS
('Meghan Edwards', 'Edwards @ Exemple.com ',' Game Development ',' 2016-06-22 ', True,' Dev-G1 '),
('Sam Davis', 'davios @ am.com ',' Game Development ',' 2014-01-04 ', false,' dev-g1 '),
('Taylor Miller', 'Miller @ Tayl.org ',' game Development ',' 2019-10-06 ', true,' dev-g1 '),
('Wilson Smitty', 'Smitty_wilson @ Exemple.net ',' database Developer ',' 2016-12-23 ', True,' Dev-db1 '),
('Barbara Moore', 'Moore @ Mail.à ',' Database Developer ',' 2015-12-23 ', True,' Dev-DB1 '),
('Raj Chan', 'Chan.raj @ courrier.net ',' database Developer ',' 2017-12-23 ', false,' dev-db1 '),
('Susan Brown', 'Brown @ Susan.IO ',' DevOps Engineer ',' 2011-12-23 ', True,' Dev-Ops1 '),
('Marial Anderson', 'Anderson @ Exemple.org ',' DevOps Engineer ',' 2015-12-23 ', True,' Dev-OPS1 '),
('Nancy Thomas', 'Thomas_Nancy @ Exampl.net ',' DevOps Engineer ',' 2014-12-23 ', false,' Dev-OPS1 ');

Pour regrouper les données ci-dessus en fonction de la semaine, nous pouvons utiliser la fonction d'extrait dans SQL. L'extract () vous permet d'extraire une partie spécifique d'une date.

La syntaxe est comme indiqué:

Extraire (partie de la date);

Par conséquent, pour extraire la semaine d'une date, nous pouvons passer le paramètre de pièce comme semaine suivi de la date littérale.

Considérez un exemple ci-dessous:

Sélectionnez Extrait (semaine dans Timestamp '2022-04-08 15:57:54.937148 + 03 ');

Remarque: l'exemple ci-dessus est illustré à l'aide de PostgreSQL. Dans certaines bases de données, vous n'avez pas besoin de spécifier la clause.

La requête ci-dessus doit revenir:

EXTRAIT
---------
14

Par conséquent, l'horodatage ci-dessus est de la semaine 14 de l'année.

Nous pouvons transmettre cette valeur au groupe par clause comme indiqué:

SÉLECTIONNER
Extrait (semaine de start_date) comme semaine,
Compter (id) comme id
Des employés
Groupe par extrait (semaine de start_date);

Cela devrait revenir:

Fermeture

Ce guide vous a montré comment utiliser la clause Groupe par SQL et la fonction d'extrait des enregistrements de groupe en fonction de la semaine.