2017-06-12 2 views
0

Mes données ressemble à ceci:comment obtenir la moyenne d'une colonne AS dans l'instruction select

DATE Ticker us_cls_price cls_prc 

    05/23 APPL  $400  $401 
    05/24 IBM  $100  $105 
    05/25 AMAZ  $350  $355 

J'utilise cette instruction select:

SELECT 
    date,ticker,us_cls_price,cls_price,cls_prc-us_cls_price AS prc_diff ... 

Je suis en train de calculer la moyenne de la colonne prc_diff.

....AS prc_diff, AVG(prc_diff) ... 

Cependant, je continue à obtenir une erreur dans laquelle il dit que le prc_diff est invalide.

Existe-t-il un moyen d'appeler une colonne créée par AS?

Répondre

1

Lorsqu'un alias est utilisé, il est uniquement disponible pour le référencement en dehors de la requête (ou de la sous-requête, selon le cas). Dans cette requête, vous devez répéter entièrement l'expression, par ex.

SELECT ... us_cls_price AS prc_diff, avg(us_cls_price) as avg_us_cls_price ... 

Si vous ne voulez pas répéter l'expression, vous devez utiliser un sous-requête à la place:

SELECT ... prc_diff, avg(prc_diff) as avg_us_cls_price ... 
FROM (SELECT ... us_cls_price as prc_diff ...)