Maison > base de données > tutoriel mysql > Comment effectuer correctement des calculs à l'aide de colonnes calculées dans les requêtes PostgreSQL ?

Comment effectuer correctement des calculs à l'aide de colonnes calculées dans les requêtes PostgreSQL ?

Barbara Streisand
Libérer: 2025-01-14 07:14:43
original
333 Les gens l'ont consulté

How to Correctly Perform Calculations Using Calculated Columns in PostgreSQL Queries?

Utiliser correctement les colonnes calculées dans les requêtes PostgreSQL pour les calculs

Lors du traitement de données dans PostgreSQL, vous devez souvent effectuer des calculs sur les colonnes pour obtenir de nouvelles informations. Pour cette raison, PostgreSQL fournit la fonctionnalité permettant de créer des colonnes calculées qui peuvent être utilisées dans le cadre de la même requête qui les crée.

Problème : syntaxe SQL incorrecte

Considérez l'instruction SQL suivante, qui fonctionne dans d'autres systèmes de gestion de bases de données (SGBD) mais échoue dans PostgreSQL :

select cost_1, quantity_1, cost_2, quantity_2, 
      (cost_1 * quantity_1) as total_1,
      (cost_2 * quantity_2) as total_2,
      (calculated total_1 + calculated total_2) as total_3
from data;
Copier après la connexion

PostgreSQL générera une erreur indiquant que les colonnes total_1 et total_2 n'existent pas.

Solution : Encapsuler la requête dans une table dérivée

Pour résoudre ce problème, PostgreSQL nécessite que l'instruction SELECT soit encapsulée dans une table dérivée :

select cost1,
       quantity_1,
       cost_2,
       quantity_2,
       total_1 + total_2 as total_3
from (
    select cost_1, 
           quantity_1, 
           cost_2, 
           quantity_2, 
           (cost_1 * quantity_1) as total_1,
           (cost_2 * quantity_2) as total_2
    from data
) t;
Copier après la connexion

Cette méthode vous permet d'accéder aux alias de colonnes dans la table dérivée, y compris les colonnes calculées total_1 et total_2. Cela n’entraîne aucune pénalité de performances.

Remarques

Il convient de noter que les instructions SQL brutes qui permettent d'utiliser directement les colonnes calculées dans les calculs ultérieurs ne sont pas recommandées dans PostgreSQL ou d'autres SGBD. Cela peut entraîner des problèmes de performances et entraver l’optimisation des requêtes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal