J'ai le schéma de base de données suivant :
Customer(ssn, name, gender, city)
Vehicle(vin, make, model, year)
BuyVehicle(bvssn, bvvin, price, year)
Où BuyVehicle.bvvin
est une clé étrangère de Vehicle.vin
y BuyVehicle.bvssn
est une clé étrangère de Customer.ssn
. J'essaie de sélectionner les noms des personnes qui ont acheté des véhicules à un prix supérieur à la moyenne de ce véhicule spécifique.
Jusqu'à présent, j'ai déterminé comment calculer la moyenne des véhicules :
SELECT AVG(price) as avg_price, v.maker, v.model, v.year FROM BuyVehicle bv, Vehicle v, Customer c WHERE v.vin = bv.BVVIN AND c.ssn = bv.bvssn GROUP BY maker, model, year;
J'ai essayé d'entrer un price > avg_price
dans le WHERE
clause :
SELECT AVG(price) as avg_price, v.maker, v.model, v.year FROM BuyVehicle bv, Vehicle v, Customer c WHERE v.vin = bv.BVVIN AND c.ssn = bv.bvssn AND bv.price > avg_price GROUP BY maker, model, year;
mais MySQL me dit que le avg_price
n'existe pas. Ai-je adopté la mauvaise approche pour résoudre ce problème ?