Maison > base de données > tutoriel mysql > Comment puis-je effectuer des calculs complexes à l'aide de colonnes calculées imbriquées dans des vues SQL ?

Comment puis-je effectuer des calculs complexes à l'aide de colonnes calculées imbriquées dans des vues SQL ?

DDD
Libérer: 2025-01-05 15:42:39
original
671 Les gens l'ont consulté

How Can I Perform Complex Calculations Using Nested Calculated Columns in SQL Views?

Utilisation de colonnes calculées pour des calculs complexes dans des vues

En SQL, les colonnes calculées sont un outil précieux pour étendre les modèles de données dans les vues. Ils vous permettent de dériver de nouvelles valeurs à partir de colonnes existantes, ouvrant ainsi la voie à une analyse et une présentation plus sophistiquées. Cependant, que se passe-t-il lorsque vous devez utiliser une colonne calculée elle-même dans le cadre d'un calcul ultérieur au sein de la même vue ?

Considérez un scénario courant dans lequel vous disposez d'un tableau avec les colonnes suivantes :

  • ColonneA (Nombre)
  • ColonneB (Nombre)
  • ColonneC (Nombre)

Dans l'une de vos vues, vous avez créé une colonne calculée appelée calccolumn1 en ajoutant simplement ColumnA et ColumnB. Maintenant, vous souhaitez utiliser calccolumn1 pour calculer une autre colonne, calccolumn2, en divisant calccolumn1 par ColumnC.

Requête initiale

Au départ, vous pouvez tenter d'écrire la requête comme suit :

Select  
    ColumnA,
    ColumnB,
    ColumnA + ColumnB As calccolumn1
    calccolumn1 / ColumnC as calccolumn2
Copier après la connexion

Malheureusement, cela ne fonctionnera pas car calccolumn2 ne peut pas référencer le calcul précédemment calculé. calccolumn1 directement.

Approche de requête imbriquée

Une solution à ce problème consiste à utiliser une requête imbriquée :

Select
    ColumnA,
    ColumnB,
    calccolumn1,
    calccolumn1 / ColumnC as calccolumn2
From (
    Select
        ColumnA,
        ColumnB,
        ColumnC,
        ColumnA + ColumnB As calccolumn1
    from t42
);
Copier après la connexion

Cette méthode crée une sous-requête qui calcule calccolumn1. La requête principale peut ensuite utiliser calccolumn1 de la sous-requête dans ses calculs.

Approche de calcul répété

Une autre option, si possible, consiste simplement à répéter le calcul pour calccolumn1 dans la requête principale :

Select
    ColumnA,
    ColumnB,
    ColumnA + ColumnB As calccolumn1,
    (ColumnA + ColumnB) / ColumnC As calccolumn2
from t42; 
Copier après la connexion

Cette approche évite la complexité d'une requête imbriquée, surtout lorsque le calcul pour calccolumn1 est relativement simple.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal