Page 1 sur 1

Requete calcul

Posté : 26 févr. 2007, 18:39
par toony.m
Bonjour,

J'essaye de trouver la requete qui me permettrait de de faire la moyenne dans un tableau puis de le trier. Je m'explique...

Voila une partie de mes champs: ch1,ch2,ch3,ch4,ch5,ch6 et voici une variable $nb_ch.

Je cherche a faire (ch1+ch2+ch3+ch4+ch5+ch6)/$nb_ch mais avec une requete SQL + un tri par ordre croissant...

Est-il possible de le faire en SQL avec SUM() du genre:
SELECT SUM(ch1,ch2,ch3,ch4,ch5,ch6)/$nb_ch AS resultat FROM ma_table
et donc d'avoir au final un résultat par ligne ? :roll:

Ou si il existe plus simple...une idée ?

je patauge...

Posté : 26 févr. 2007, 18:44
par albat
J'ai du mal à comprendre la structure de ta table,
mais la fonction SQL avg() permet de calculer directement la moyenne d'un champ.

Posté : 26 févr. 2007, 18:50
par toony.m
Si j'ai bien compris, AVG fait la moyenne de la colonne.

Mais peut-on faire la moyenne de plusieurs champs d'une même ligne?

Structure de la table complète:
ID_user,
ch1,
ch2,
ch3,
ch4,
ch5,
ch6.

ch X comprenant des nombres positifs.

Posté : 26 févr. 2007, 18:52
par albat
la moyenne des 6 champs pour chaque ligne (genre : les notes d'un élève)
ou la moyenne des 6 colonnes pour toute la table ?

Posté : 26 févr. 2007, 18:55
par toony.m
la moyenne des 6 champs par ligne ! :D

Re: Requete calcul

Posté : 26 févr. 2007, 18:58
par zeus
Comme le devine Albat, je pense que tu veux, pour chaque enregistrement, la somme des 6 champs divisé par une constante, vrai ?

Dans ce cas, pas besoin de fonction d'agrégation SQL, juste des opérateur mathématiques normaux :
$query = "SELECT (ch1+ch2+ch3+ch4+ch5+ch6)/".$nb_ch." FROM table";
te permettra d'obtenir la somme divisé par ta variable pour chaque enregistrement ;)

Posté : 26 févr. 2007, 18:58
par albat
$req = "SELECT ID_user, (ch1+ch2+ch3+ch4+ch5+ch6)/6 AS resultat FROM ma_table GROUP BY ID_user";

Posté : 26 févr. 2007, 19:00
par toony.m
OK,OK, on peut faire comme ça alors...


Je teste ça ce soir !!

Bonne soirée merci!