Moyenne

Signaler
Messages postés
345
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
13 mai 2011
-
Messages postés
345
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
13 mai 2011
-
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

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,

tu veux faire quoi au juste ?

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

?
Messages postés
345
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
13 mai 2011

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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Faudrait qu'on voit les notations de l'entreprise qui a l'id_entreprise à 1, histoire de se faire une idée ;)
Messages postés
345
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
13 mai 2011

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 ;