Bonjour,
Je vous propose un nouvel élément à utiliser : Quel est l'équivalent de la fonction SUM pour un produit ?
MySQL n'a pas de fonction pour agréger par produit. Toutefois, il est possible de le faire avec les fonctions EXP et LN.
Si, par exemple, vous avez la table suivante
Et le jeu de données suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE Exemple ( forme varchar(20), dimension varchar(10), facteur float NOT NULL ) ;
On veut calculer le volume de chaque forme, et donc faire quelque chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 INSERT INTO Exemple VALUES('parallélépipède', 'largeur', 10); INSERT INTO Exemple VALUES('parallélépipède', 'longueur', 30); INSERT INTO Exemple VALUES('parallélépipède', 'hauteur', 15); INSERT INTO Exemple VALUES('pyramide', 'base', 20); INSERT INTO Exemple VALUES('pyramide', 'hauteur', 30); INSERT INTO Exemple VALUES('pyramide', 'constante', 1/3);
Cette requête n'est pas valide parce que la fonction Produit() n'existe pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 -- erreur de syntaxe SELECT forme, Produit(facteur) AS Volume FROM Exemple GROUP BY forme
on la remplacera donc par l'exponentiel d'une somme de logarithmes :
Qu'en pensez-vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT forme, EXP(SUM(LN(facteur))) AS Volume FROM Exemple GROUP BY forme
Partager