2017-05-22 1 views
0

J'ai une union de trois tables (t1, t2, t3). Chaque retour exactement le même nombre d'enregistrements, la première colonne est id, deuxième quantité:Simple moyen de calculer la moyenne par union de trois tables en MySQL

 1 10 
     2 20 
     3 20 

     1 30 
     2 30 
     3 10 

     1 20 
     2 40 
     3 60 

est-il une simple façon de SQL pour calculer la moyenne jusqu'à seulement obtenir:

 1 20 
     2 30 
     3 30 

peut la nouvelle valeur magasin dans une autre table t4 avec le code php?

Répondre

3

Une façon d'obtenir une moyenne consiste à utiliser la fonction d'agrégat SQL AVG().

Si nous voulons un "per id" moyen, nous devons inclure une clause GROUP BY.

Nous pouvons utiliser une requête de vue en ligne à la place d'une référence de table. (MySQL fait référence à cela comme une table dérivée

Voici un exemple de ce qui pourrait ressembler à la requête.

SELECT t.id 
    , AVG(t.amount) AS avg_amount 
    FROM (SELECT t1.id 
       , t1.amount 
      FROM t1 
      UNION ALL 
     SELECT t2.id 
       , t2.amount 
      FROM t2 
      UNION ALL 
     SELECT t3.id 
       , t3.amount 
      FROM t3 
     ) t 
GROUP BY t.id 
ORDER BY t.id 
+0

si l'on montant1 plus de colonne est ajoutée alors comment peut-il être calculé? –