Requete calcul

Eléphant du PHP | 115 Messages

26 févr. 2007, 18:39

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...
Quelques réalisations www.cdi-interactiv.com

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

26 févr. 2007, 18:44

J'ai du mal à comprendre la structure de ta table,
mais la fonction SQL avg() permet de calculer directement la moyenne d'un champ.

Eléphant du PHP | 115 Messages

26 févr. 2007, 18:50

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.
Quelques réalisations www.cdi-interactiv.com

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

26 févr. 2007, 18:52

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 ?

Eléphant du PHP | 115 Messages

26 févr. 2007, 18:55

la moyenne des 6 champs par ligne ! :D
Quelques réalisations www.cdi-interactiv.com

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 févr. 2007, 18:58

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

26 févr. 2007, 18:58

$req = "SELECT ID_user, (ch1+ch2+ch3+ch4+ch5+ch6)/6 AS resultat FROM ma_table GROUP BY ID_user";

Eléphant du PHP | 115 Messages

26 févr. 2007, 19:00

OK,OK, on peut faire comme ça alors...


Je teste ça ce soir !!

Bonne soirée merci!
Quelques réalisations www.cdi-interactiv.com