Quel est l'équivalent de la fonction SUM pour un produit ?
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
Code:
1 2 3 4 5
| CREATE TABLE Exemple (
forme varchar(20),
dimension varchar(10),
facteur float NOT NULL
) ; |
Et le jeu de données suivant
Code:
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); |
On veut calculer le volume de chaque forme, et donc faire quelque chose comme :
Code:
1 2 3 4
| -- erreur de syntaxe
SELECT forme, Produit(facteur) AS Volume
FROM Exemple
GROUP BY forme |
Cette requête n'est pas valide parce que la fonction Produit() n'existe pas.
on la remplacera donc par l'exponentiel d'une somme de logarithmes :
Code:
1 2 3
| SELECT forme, EXP(SUM(LN(facteur))) AS Volume
FROM Exemple
GROUP BY forme |
Qu'en pensez-vous ?