Partition postgresql par l'exemple

Partition postgresql par l'exemple

La clause ou la fonction «partition by» de PostgreSQL appartient à la catégorie des fonctions de fenêtre. Les fonctions de fenêtre de PostgreSQL sont celles qui sont capables d'effectuer des calculs qui s'étendent sur plusieurs lignes d'une colonne mais pas toutes les lignes. Cela signifie que contrairement aux fonctions agrégées de PostgreSQL, les fonctions Windows ne produisent pas nécessairement une seule valeur en sortie. Aujourd'hui, nous souhaitons explorer l'utilisation de la clause ou de la fonction de «partition par» de PostgreSQL dans Windows 10.

Partition postgresql par exemples dans Windows 10:

Cette fonction affiche la sortie sous forme de partitions ou de catégories par rapport à l'attribut spécifié. Cette fonction prend simplement l'un des attributs de la table PostgreSQL comme entrée de l'utilisateur, puis affiche la sortie en conséquence. Cependant, la clause ou la fonction «partition par» ou la fonction de PostgreSQL est la plus adaptée aux grands ensembles de données et non à ceux dans lesquels vous ne pouvez pas identifier des partitions ou des catégories distinctes. Vous devrez passer par les deux exemples discutés ci-dessous pour comprendre l'utilisation de cette fonction d'une meilleure manière.

Exemple n ° 1: Extraction de la température corporelle moyenne des données des patients:

Pour cet exemple particulier, notre objectif est de découvrir la température corporelle moyenne des patients du tableau «patient». Vous pourriez vous demander si nous pouvons simplement utiliser la fonction «AVG» de PostgreSQL pour le faire, alors pourquoi utilisons-nous la clause «Partition by» ici. Eh bien, notre tableau «patient» se compose également d'une colonne nommée «doc_id» qui est là pour spécifier quel médecin a traité un patient particulier. En ce qui concerne cet exemple, nous sommes intéressés à voir les températures corporelles moyennes des patients traités par chaque médecin.

Cette moyenne sera différente pour chaque médecin car ils s'occupaient de différents patients ayant des températures corporelles différentes. C'est pourquoi l'utilisation de la clause «Partition by» est obligatoire dans cette situation. De plus, nous allons utiliser un tableau déjà existant pour démontrer cet exemple. Vous pouvez également en créer un nouveau si vous voulez. Vous pourrez bien comprendre cet exemple en passant par les étapes suivantes:

Étape # 1: Affichage des données que la table du patient contient:

Puisque nous avons déjà déclaré que nous allons utiliser un tableau déjà existant pour cet exemple, nous essaierons d'abord d'afficher ses données afin que vous puissiez jeter un œil aux attributs de ce tableau. Pour cela, nous exécuterons la requête ci-dessous:

# Select * chez le patient;

Vous pouvez voir sur l'image suivante que le tableau «patient» a quatre attributs, je.e., PAT_ID (fait référence à l'ID du patient), PAT_NAME (détient le nom du patient), PAT_TEMP (fait référence à la température corporelle du patient) et DOC_ID (fait référence à l'ID du médecin qui a traité un patient particulier).

Étape # 2: Extraction de la température corporelle moyenne des patients en ce qui concerne le médecin qui s'y occupait:

Pour découvrir la température corporelle moyenne des patients partitionnés par le médecin qui s'y préoccupe, nous exécuterons la requête indiquée ci-dessous:

# SELECT PAT_ID, PAT_NAME, PAT_TEMP, DOC_ID, AVG (PAT_TEMP) ON (Partition by DOC_ID) du patient;

Cette requête calculera la moyenne de la température des patients concernant le médecin qui s'y est assis, puis l'affiche simplement avec les autres attributs de la console comme indiqué dans l'image suivante:

Depuis que nous avions cinq identifiants de médecins différents, nous avons réussi à calculer les moyennes de cinq partitions différentes à travers cette requête, je.e., 99.5, 99, 101.5, 99.5 et 105.5, respectivement.

Exemple n ° 2: Extraction des prix moyens, minimaux et maximaux appartenant à chaque type de plat à partir des données de repas:

Dans cet exemple, nous voulons découvrir les prix moyens, minimums et maximaux de chaque plat en ce qui concerne le type de plat du tableau «repas». Encore une fois, nous utiliserons un tableau déjà existant pour démontrer cet exemple; Cependant, vous êtes libre de créer une nouvelle table si vous voulez. Vous aurez une idée plus claire de ce dont nous parlons après avoir parcouru les étapes mentionnées ci-dessous:

Étape n ° 1: Affichage des données que la table de repas contient:

Puisque nous avons déjà déclaré que nous allons utiliser un tableau déjà existant pour cet exemple, nous essaierons d'abord d'afficher ses données afin que vous puissiez jeter un œil aux attributs de ce tableau. Pour cela, nous exécuterons la requête ci-dessous:

# SELECT * From Meal;

Vous pouvez voir sur l'image suivante que la table «repas» a trois attributs, je.e., Dish_name (se réfère au nom du plat), Dish_type (tient le type auquel appartient le plat, je.e., Plat principal, démarreur ou dessert) et Dish_Price (fait référence au prix du plat).

Étape # 2: Extraction du prix moyen du plat du plat en ce qui concerne le type de plat auquel il appartient:

Pour découvrir le prix de plat moyen du plat partitionné par le type de plat auquel il appartient, nous exécuterons la requête indiquée ci-dessous:

# SELECT DISH_NAME, DISH_TYPE, DISH_PRICE, AVG (DISH_PRICE) Over (Partition by Dish_Type) From Meal;

Cette requête calculera le prix moyen des plats par rapport au type de plat auquel ils appartiennent, puis l'affichent simplement avec les autres attributs de la console comme indiqué dans l'image suivante:

Depuis que nous avions trois types de plats différents, nous avons réussi à calculer les moyennes de trois partitions différentes à travers cette requête, je.e., 155, 241.67 et 261.67, respectivement.

Étape # 3: Extraction du prix minimum du plat du plat en ce qui concerne le type de plat auquel il appartient:

Maintenant, sur des sols similaires, nous pouvons extraire le prix du plat minimum par rapport à chaque type de plat simplement en exécutant la requête indiquée ci-dessous:

# SELECT DISH_NAME, DISH_TYPE, DISH_PRICE, MIN (DISH_PRICE) Over (Partition by Dish_Type) From Meal;

Cette requête calculera le prix minimum des plats par rapport au type de plat auquel ils appartiennent, puis affichent simplement avec les autres attributs de la console comme indiqué dans l'image suivante:

Étape n ° 4: Extraction du prix du plat maximum du plat en ce qui concerne le type de plat auquel il appartient:

Enfin, de la même manière, nous pouvons extraire le prix du plat maximal par rapport à chaque type de plat simplement en exécutant la requête indiquée ci-dessous:

# SELECT DISH_NAME, DISH_TYPE, DISH_PRICE, MAX (DISH_PRICE) Over (Partition by Dish_Type) From Meal;

Cette requête calculera le prix maximum des plats par rapport au type de plat auquel ils appartiennent, puis affichent simplement avec les autres attributs de la console comme indiqué dans l'image suivante:

Conclusion:

Cet article était destiné à vous donner un aperçu de l'utilisation de la fonction «partition by» postgresql. Pour ce faire, nous vous avons d'abord présenté les fonctions de fenêtre postgresql, suivie d'une brève description de la fonction «Partition par». Enfin, pour élaborer l'utilisation de cette fonction dans PostgreSQL dans Windows 10, nous vous avons présenté deux exemples différents avec l'aide de laquelle vous pouvez facilement apprendre l'utilisation de cette fonction postgresql dans Windows 10.