Le problème : connaître le prix moyen des PC et ordinateurs portables produits par le fabricant A. Ensemble de résultats : un prix moyen global pour tous les articles.
Tableau des produits :
Tableau PC :
Tableau de l'imprimante :
Tablette pour ordinateur portable :
Mon code :
select (avg(pc.price)+avg(printer.price))/2 from pc, printer
where pc.model IN
(SELECT product.model from PRODUCT where maker='A')
AND
printer.model IN
(SELECT printer.model from product where maker = 'A')
Je ne pense pas que l'exigence soit la moyenne de 2 moyennes.
Ce que vous pouvez faire, c'est sélectionner tous les prix des PC et tous les prix des ordinateurs portables par fabricant « A » et trouver la moyenne de tous.
Vous devrez utiliser UNION ALL
pour sélectionner tous les prix des deux tableaux pc
et laptop
:
select avg(t.price) AVG_price from (
select price from pc
where model in (select model from product where maker = 'A')
union all
select price from laptop
where model in (select model from product where maker = 'A')
) t
Mais si c'est le cas de la moyenne des moyennes, alors en suivant la même logique, calculez les 2 moyennes et appliquez UNION ALL
pour en obtenir la moyenne :
select avg(t.price) AVG_price from (
select avg(price) price from pc
where model in (select model from product where maker = 'A')
union all
select avg(price) price from laptop
where model in (select model from product where maker = 'A')
) t
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras