Groupe postgres par jour

Groupe postgres par jour
Une instruction de groupe Postgres est utilisée pour créer des groupes des lignes obtenues à partir de l'instruction SELECT. Cette clause est utile lorsque nous devons utiliser les fonctions intégrées de Postgres avec la commande SELECT. Par exemple, en utilisant sum (), count (), nous pouvons facilement utiliser cette clause avec l'instruction SELECT. Ce tutoriel fonctionnera sur cette clause pour regrouper les lignes de la relation en fonction du jour à partir des données que vous avez entrées.

Syntaxe du groupe par clause

SÉLECTIONNER
colonne1,
name_of_function (colonne2)
DEPUIS
Name_of_table
PAR GROUPE
COLUMN_1;

Le name_of_function est la fonction intégrée comme la fonction de nombre pour compter le nombre de lignes qui doivent être regroupées en conséquence. Alors que dans le cas de deux colonnes à utiliser dans une instruction SELECT, nous utilisons les deux colonnes dans Select et dans la clause Group By.

Implémentation de groupe par jour

Considérez l'exemple ci-dessous, dans lequel nous avons un tableau nommé un pays qui contient toutes les informations concernant le pays, l'identification, le nom et le nom du continent. Nous appliquerons une commande en groupe sur la table.

La clause du groupe par est appliquée sur la colonne, nous avons donc sélectionné la colonne du continent pour regrouper les pays du même continent. Tout d'abord, nous sélectionnons la colonne spécifique que nous voulons regrouper. je.e., continent. Ensuite, nous créons une nouvelle colonne pour afficher le résultat dans. Cette colonne résultante est nommée Same_Area. La fonction intégrée de PostgreSQL Count () est utilisée ici pour compter les ID qui ont les mêmes continents.

>> Sélectionnez Continent comme Same_Area, Count (ID) From Country Group by Continent;

Cela donnera les résultats suivants dans une commande nouvellement créée avec la colonne de comptage en exécution. Le résultat montre donc que deux continents apparaissent 2 fois dans un tableau. Ces deux mêmes continents sont mentionnés collectivement pour former un groupe en utilisant un groupe par clause.

Groupe par jour

Comme nous l'avons vu, une clause Group By est utilisée avec un nom de colonne spécifique, selon lequel il exécute toute la déclaration. Nous allons maintenant utiliser quelques exemples pour regrouper les données du tableau collectivement en fonction des jours à partir des données que nous avons utilisées dans les tableaux. Une nouvelle relation sera créée ici pour implémenter un nouvel exemple. Ainsi, en utilisant la commande s Create, un tableau nommé est créé avec 3 colonnes, id, sujet_name et test_date; Le type de données de cette variable est utilisé comme date car nous devons regrouper les données du tableau en fonction du jour.

>> Créer un test de table (ID INTEGER, Subject_name Varchar (10), Test_Date Date);

Après avoir créé le tableau, nous devons insérer des valeurs dans le tableau via une instruction d'insertion. Lors de l'insertion de données, il faut s'assurer que les valeurs insérées contiennent les mêmes dates en deux lignes ou plus pour éviter tout conflit tout en regroupant les lignes en conséquence. Parce que les données différentes ne seront pas regroupées. La colonne Test_Date contient des dates en fonction du format de date de la fonction de date intégrée et doit être écrit en virgules inversées.

>> Insérer dans Test (id, sujet_name, test_date) valeurs ('1', 'English', '2022-11-22'), ('2', 'Chemistry', '2022-8-06'), ( «3», «Socialogy», «2022-11-22»), («4», «Math», «2022-8-06»), («5», «anglais», «2022-03-08 «), (« 6 »,« physique »,« 2022-06-19 »);

Pour voir les données entrées dans le tableau, utilisez une commande Select pour voir l'enregistrement.

>> SELECT * dans le test;

Vous pouvez voir que certaines lignes dans les colonnes test_date semblent similaires.

Exemple 1
Nous utiliserons la requête sélectionnée avec la clause Group By pour combiner les mêmes valeurs.

>> sélectionnez date_trunc ('day', test_date) comme combinée_test, count (id) comme comptage à partir du groupe de test par date_trunc ('day', test_date);

Cette commande contient la fonction de date intégrée pour récupérer les jours uniquement à partir de la valeur de date entrée. Cette fonction prend le mot-clé «jour» pour récupérer les jours et le nom de la colonne sur lequel cette fonction doit être appliquée comme paramètre. Puis spécifiez une nouvelle colonne résultante; la fonction count () comptera les ID totaux qui sont les mêmes. Et la sélection est regroupée par les jours résultants qui sont convertis des dates que nous avons utilisées.

En exécution, vous verrez le résultat ci-dessus. Vous pouvez voir que ces rangées ayant les mêmes dates sont combinées en groupe.

Exemple 2
Considérez à nouveau l'exemple ci-dessus, mais nous avons regroupé les données en utilisant deux colonnes cette fois. Nous devons sélectionner les deux éléments que nous souhaitons utiliser avec la clause Group By; Sinon, PostgreSQL n'exécute pas la commande. Nous avons utilisé l'ID et la colonne de date.

>> sélectionnez ID, date_trunc ('day', test_date) comme combinée_test, count (id) comme comptage à partir du groupe de test par id, date_trunc ('day', test_date);

Cette fois, les valeurs ne sont pas regroupées. Parce que lorsque nous utilisons la clause Group By avec plus d'une colonne, la clause est d'abord appliquée sur la première colonne, puis les résultats de celui-ci sont en outre regroupés en fonction de la deuxième colonne. Donc, ce tableau résultant montre qu'aucune ligne n'est regroupée car tous les ID sont différents. Chaque nombre d'ID affiche 1 pour chaque ligne.

Exemple 3
Les dates ayant le même numéro de jour et les numéros de mois différents ne sont pas regroupés. Il est nécessaire d'avoir des jours, des mois et des années les mêmes; Sinon, la ligne a le même jour, mais des mois et des années différents ne sont pas regroupés en fonction des jours. Ceux-ci ont été comptés comme des lignes séparées. Pour comprendre ce concept, nous insérons à nouveau une autre rangée ayant la journée de même, mais d'autres attributs de dates.

En appliquant le même groupe par clause dans l'instruction SELECT, nous obtiendrons le résultat ci-dessous. Vous pouvez observer que la ligne nouvellement entrée n'est pas regroupée.

Exemple 4
Les exemples précédents traitent de l'extraction et du regroupement de la journée en fonction de la fonctionnalité. Mais maintenant, nous utiliserons les noms des jours de semaine comme valeur de chaîne. Nous utiliserons une clause Group By pour regrouper les lignes en fonction des mêmes jours. Créez une nouvelle table nommée Match ayant ID, nom et le jour du match comme attributs.

>> Créer une correspondance de table (ID INTEGER, NAME VARCHAR (10), JOUR VARCHAR (10));

Nous allons maintenant entrer des données en utilisant une instruction INSERT. Les données du jour de la colonne contiennent le nom des jours ayant des valeurs similaires.

Nous allons maintenant appliquer la clause Group By pour combiner les mêmes jours dans la colonne de jour comme une colonne résultante d'un combinant_match.

>> Sélectionnez jour comme combinée_match, compter (id) comme compter dans le groupe de match par jour;

Selon la commande, les mêmes jours sont regroupés dans la colonne. Et ceux qui n'étaient pas les mêmes sont mentionnés indépendamment.

Maintenant, nous allons à nouveau insérer une ligne ayant le même nom du match avec le même nom du jour. Les lignes précédentes ont des données ayant des noms de match différents avec les mêmes jours.

Utilisez la clause Group By avec deux noms de colonne et le jour. Maintenant, seules ces lignes avec les mêmes noms et jours sont groupées. Tandis que d'autres sont affichés sans regrouper.

>> Sélectionnez Nom, Day, Count (ID) de Match Group by Name Day;

Conclusion

L'article «Postgres Group de jour» décrit l'implémentation dans le langage PostgreSQL sur Windows 10 en utilisant le shell PSQL. Nous avons inclus les fonctions intégrées sur les fonctionnalités de date et également sur les données entrées manuellement via les commandes. La clause Group By aide à gérer les données pour garder le même type de données alignées et intactes.