J'ai besoin de trouver le prix moyen de deux produits dans deux tableaux séparés où le fabricant est le même pour les deux

utilisateur

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 :

entrez la description de l'image ici

Tableau PC :

entrez la description de l'image ici

Tableau de l'imprimante :

entrez la description de l'image ici

Tablette pour ordinateur portable :

entrez la description de l'image ici

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')

Mon résultat et le bon résultat : entrez la description de l'image ici

décéder

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 ALLpour sélectionner tous les prix des deux tableaux pcet 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 ALLpour 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.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados