PostgreSQL - ERREUR: la colonne n'existe pas état SQL: 42703

Je suis en train de faire une analyse de cohorte et de comparer nombre moyen de location basé sur le locataire du premier loyer de l'année(= l'année où un locataire loué pour la première fois). En gros, je me suis poser la question: sommes-nous conserver les locataires dont la première année de la location d'été 2013 que les locataires dont la première année a été de 2015?

Voici mon code:

SELECT renter_id, 
       Min(Date_part('year', created_at)) AS first_rental_year, 
       ( Count(trip_finish) )             AS number_of_trips 
FROM   bookings 
WHERE  state IN ( 'approved', 'aboard', 'ashore', 'concluded', 'disputed' ) 
  AND  first_rental_year = 2013 
GROUP  BY 1 
ORDER  BY 1; 

Le message d'erreur que je reçois est:

ERROR:  column "first_rental_year" does not exist
LINE 6: ... 'aboard', 'ashore', 'concluded', 'disputed') AND first_rent...
                                                             ^

********** Error **********

ERROR: column "first_rental_year" does not exist
SQL state: 42703
Character: 208

Toute aide est très appréciée.

  • je ne vois pas l'erreur une partie de votre requête vous avez posté... la syntaxe correcte devrait être AND extract(year from b1.created_at)
  • Êtes-vous sûr que c'est la même requête? Message d'erreur disant que la LIGNE 10?
  • Désolé les gars, a ajouté le message d'erreur correct
  • Le problème est que la colonne first_rental_year n'est pas dans votre table source. D'autres SQL les moteurs prennent en charge la syntaxe AND CALCULATED first_rental_year = 2013, mais postgre ne l'est pas. Il est possible de réutiliser votre formule (AND Min(Date_part('year', created_at)) = 2013) ou mieux, utiliser @Juan Carlos solution qui permet d'éviter cette redondance. Voir ce post pour plus d'info.
  • Je ne peux pas réutiliser ma formule, car elle dit que les fonctions d'agrégation ne sont pas autorisés dans la clause where
  • j'avais appartiennent à la clause having mais j'irais avec @Juan Carlos

InformationsquelleAutor DBE7 | 2016-05-24