Moyenne

cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 2 janv. 2007 à 19:45
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 3 janv. 2007 à 20:13
Bonsoir et bonne année à toute la communauté,

Je cherche a faire la moyenne de 6 colonnes de ma base de données ! Pour une colonne, j'ai fait comme ceci :

SELECT AVG( NULLIF(note1, 0)) FROM Notations WHERE id_entreprise='".$id_entreprise."' GROUP BY id_entreprise

Les colonnes sont nommées de note1, ..., note6

Merci de votre aide

4 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
2 janv. 2007 à 23:56
Salut,

tu veux faire quoi au juste ?

SELECT ((AVG(note1) + AVG(note2) + AVG(note3) + AVG(note4) + AVG(note5) + AVG(note6)) / 6)

?
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
3 janv. 2007 à 17:53
Oui, mais parfois j'ai une colonne entier qui ne contient que des 0 et donc qu'il ne faut pas tenir compte :

SELECT(
COALESCE( AVG( NULLIF( note1, 0))) + COALESCE( AVG( NULLIF( note2, 0))) + COALESCE( AVG( NULLIF( note3, 0))) + COALESCE( AVG( NULLIF( note4, 0))) + COALESCE( AVG( NULLIF( note5, 0))) + COALESCE( AVG( NULLIF( note6, 0)))
) / ((
AVG( note1 )ISNOTNULL) + ( AVG( note2 )ISNOTNULL) + ( AVG( note3 )ISNOTNULL) + ( AVG( note4 )ISNOTNULL) + ( AVG( note5 )ISNOTNULL) + ( AVG( note6 )ISNOTNULL)
)
FROM Notations
WHERE id_entreprise = '1'
LIMIT0 , 30


Mais il me retourne encore NULL

Merci
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
3 janv. 2007 à 19:07
Faudrait qu'on voit les notations de l'entreprise qui a l'id_entreprise à 1, histoire de se faire une idée ;)
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
3 janv. 2007 à 20:13
Exemple : http://www.developpez.net/forums/attachment.php?attachmentid=8186&d=1167681677

Pour ceux qui aimerais faire des tests chez eux, voici la table :

<!-- BEGIN TEMPLATE: bbcode_quote -->

Citation:
CREATE TABLE `Notations` (

`id_note` int(11) NOT NULL auto_increment,

`id_entreprise` int(11) NOT NULL,

`id_metier` int(11) NOT NULL,

`note1` float default NULL,

`note2` float default NULL,

`note3` float default NULL,

`note4` float default NULL,

`note5` float default NULL,

`note6` float default NULL,

`dt_note` varchar(50) collate latin1_german2_ci NOT NULL,

`username` varchar(255) collate latin1_german2_ci NOT NULL,

PRIMARY KEY (`id_note`)

) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=4 ;
0
Rejoignez-nous