Syntaxe
SÉLECTIONNERNous pouvons également utiliser plus d'une colonne dans la commande.
Mise en œuvre du groupe par clause
Pour expliquer le concept d'un groupe par clause, considérez le tableau ci-dessous, nommé client. Cette relation est créée pour contenir les salaires de chaque client.
>> sélectionner * chez le client;Nous appliquerons une clause Group By en utilisant une seule colonne «salaire». Une chose que je dois mentionner ici est que la colonne que nous utilisons dans l'instruction SELECT doit être mentionnée dans la clause du groupe. Sinon, cela entraînera une erreur et la commande ne sera pas exécutée.
>> Sélectionnez le salaire du groupe de clients par salaire;Vous pouvez voir que la table résultante montre que la commande a regroupé les lignes qui ont le même salaire.
Maintenant, nous avons appliqué cette clause sur deux colonnes en utilisant un nombre de fonctions intégré () qui compte le nombre de lignes appliquées par l'instruction SELECT, puis le groupe par clause est appliqué pour filtrer les lignes en combinant les mêmes lignes de salaire. Vous pouvez voir que les deux colonnes qui se trouvent dans l'instruction SELECT sont également utilisées dans la clause Group-by.
>> sélectionnez le salaire, comptez (salaire) du groupe de clients par salaire;Groupé par heure
Créez un tableau pour démontrer le concept d'un groupe par clause sur une relation postgres. Le tableau nommé class_time est créé avec l'ID de colonnes, le sujet et C_period. L'ID et le sujet ont une variable de type de données d'Enteger et Varchar, et la troisième colonne contient le type de données de la fonction intégrée de temps car nous devons appliquer la clause de groupe par la table pour récupérer la partie heure de tout le temps déclaration.
>> Créer une table class_time (ID Integer, sujet varchar (10), c_period time);Une fois le tableau créé, nous insérons des données dans les lignes en utilisant une instruction INSERT. Dans la colonne C_period, nous avons ajouté du temps en utilisant la forme standard du temps 'HH: MM: SS' qui doit être enfermé dans des comas inversés. Pour faire le groupe de clause en travaillant sur cette relation, nous devons entrer des données afin que certaines lignes dans la colonne C_period se correspondent les unes aux autres afin que ces lignes puissent être regroupées facilement.
>> Insérer dans la classe_time (id, sujet, c_period) Valeurs (2, 'Maths', '03:06:27'), (3, 'English', '11: 20: 00 '), (4,' S.Études ', '09: 28: 55'), (5, 'Art', '11: 30: 00 '), (6,' persan ', '00: 53: 06');6 lignes sont insérées. Nous afficherons les données insérées en utilisant une instruction SELECT.
>> sélectionnez * dans class_time;Exemple 1
Pour poursuivre dans la mise en œuvre d'un groupe par clause par la partie heure de l'horodatage, nous appliquerons une commande sélectionnée sur la table. Dans cette requête, une fonction date_trunc est utilisée. Ce n'est pas une fonction créée par l'utilisateur mais est déjà présente dans Postgres à utiliser comme fonction intégrée. Il faudra le mot-clé «heure» car nous sommes soucieux de récupérer une heure, et deuxièmement, la colonne C_period comme paramètre. La valeur résultante de cette fonction intégrée en utilisant une commande de sélection passera par la fonction Count (*). Cela comptera toutes les lignes résultantes, puis toutes les lignes seront regroupées.
>> sélectionnez date_trunc ('hour', c_period), count (*) dans le groupe class_time par 1;La fonction date_trunc () est la fonction tronquée qui est appliquée à l'horodatage pour tronquer la valeur d'entrée dans la granularité comme les secondes, les minutes et les heures. Ainsi, selon la valeur résultante obtenue via la commande, deux valeurs ayant les mêmes heures sont regroupées et comptées deux fois.
Une chose doit être notée ici: la fonction tronquée (heure) ne traite que la partie heure. Il se concentre sur la valeur la plus gauche, quelles que soient les minutes et les secondes utilisées. Si la valeur de l'heure est la même dans plus d'une valeur, la clause de groupe en créera un groupe. Par exemple, 11:20:00 et 11:30:00. De plus, la colonne de Date_trunc coupe la partie heure de l'horodatage et affiche la partie heure que tandis que la minute et la seconde est '00'. Parce qu'en faisant cela, le regroupement ne peut être fait que.
Exemple 2
Cet exemple traite de l'utilisation d'une clause Group By le long de la fonction date_trunc () elle-même. Une nouvelle colonne est créée pour afficher les lignes résultantes avec la colonne de comptage qui comptera les ID, pas toutes les lignes. Par rapport au dernier exemple, le signe astérisque est remplacé par l'ID dans la fonction de comptage.
>> sélectionnez date_trunc ('hour', c_period) en tant que time_table, count (id) comme count from class_time group by date_trunc ('hour', c_period);Les valeurs résultantes sont les mêmes. La fonction trunc a tronqué la partie heure de la valeur temporelle, et une partie d'autre est déclarée nulle. De cette façon, le regroupement à l'heure est déclaré. Le PostgreSQL obtient l'heure actuelle du système sur lequel vous avez configuré la base de données PostgreSQL.
Exemple 3
Cet exemple ne contient pas la fonction trunc_date (). Nous allons maintenant aller chercher des heures à partir du temps en utilisant une fonction d'extrait. Les fonctions extrait () fonctionnent comme le trunc_date pour extraire la partie pertinente en ayant l'heure et la colonne ciblée comme paramètre. Cette commande est différente dans le travail et la montre des résultats dans les aspects de la fourniture d'heures uniquement. Il supprime la partie minutes et secondes, contrairement à la fonctionnalité trunc_date. Utilisez la commande SELECT pour sélectionner l'ID et le sujet avec une nouvelle colonne qui contient les résultats de la fonction d'extrait.
>> sélectionnez ID, sujet, extraire (heure de C_period) comme heure de class_time;Vous pouvez observer que chaque ligne est affichée en ayant les heures de chaque fois dans la ligne respective. Ici, nous n'avons pas utilisé la clause du groupe par groupe pour élaborer le fonctionnement d'une fonction extrait ().
En ajoutant une clause Group By en utilisant 1, nous obtiendrons les résultats suivants.
>> Sélectionnez Extrait (heure de C_period) As Hour From Class_time Group par 1;Comme nous n'avons utilisé aucune colonne dans la commande SELECT, donc seule la colonne Hour sera affichée. Cela contiendra les heures sous la forme groupée maintenant. 11 et 9 sont affichés une fois pour montrer la forme groupée.
Exemple 4
Cet exemple traite de l'utilisation de deux colonnes dans l'instruction SELECT. L'un est le C_period, pour afficher l'heure, et l'autre est nouvellement créé comme une heure pour montrer seulement les heures. La clause Group By est également appliquée à la fonction C_period et à la fonction d'extrait.
>> sélectionnez _period, Extrait (heure de C_period) As Hour From Class_time Group by Extrait (heure de C_period), C_period;Conclusion
L'article `` Postgres Groups by Hour With Time '' contient les informations de base concernant le groupe par clause. Pour implémenter le groupe par clause avec heure, nous devons utiliser le type de données de temps dans nos exemples. Cet article est implémenté dans la base de données PostgreSQL PSQL Shell installé sur Windows 10.