select SNo from Supplier Having AVG(Qty) IN ( Select SNo, AVG(Qty)AS Average from Supplier Group By SNo ) where (Qty) >50 AND (Qty) <100;
3 Réponses :
Vous pouvez utiliser simplement faire une agrégation sans sous-requête:
select sno, avg(Qty) AS Average from supplier s group by sno having avg(qty) > 50 and avg(qty) < 100;
Si vous voulez un filtre avec des valeurs agrégées, vous pouvez faire:
select sno, avg(Qty) AS Average from supplier s where qty > 50 and qty < 100 group by sno;
p >
D'après les commentaires:
J'ai besoin de sélectionner SNo dans des tables avec une quantité moyenne de plus de 50 et moins de 100
Pour cela, vous pouvez utiliser l'agrégation et une clause ayant
:
select sno, avg(qty) avg_qty from supplier group by sno having avg(qty) > 50 and avg(qty) < 100
Votre question est un peu déroutante, mais je pense que c'est la suivante:
select tbaux.SNo from (Select SNo, AVG(Qty) AS Average from Supplier Group By SNo ) as tbaux where (tbaux.Qty) >50 AND (tbaux.Qty) <100;
Merci Monsieur pour votre réponse
Je ne peux pas imaginer ce que vous essayez de faire. La requête comporte de nombreuses erreurs. Je vous suggère de supprimer cette question et de poser une nouvelle question avec des exemples de données, les résultats souhaités et une balise de base de données appropriée.
J'ai besoin de sélectionner SNo dans les tables avec une quantité moyenne et plus de 50 et moins de 100