[Résolu]MySQL : Group by sur un group by

Bonjour,

alors je cherche à faire 2 Group BY successifs . 1 group by sur le résultat d’un autre group by … je cherche je vois pas trop comment faire ça .

Concrètement :

je fais une appli qui gère les stocks de pc et des composants.
Un pc a 1 ou plusieurs barrettes de RAM
Je fais la somme de la raa sur un pc

select uc.id_uc,[url=“http://www.commentcamarche.net/contents/sql/sqltri.php3”]sum/url as NBRAM from uc,contient,ram where contient.id_uc=uc.id_uc and contient.id_ram=ram.id_ram GROUP BY uc.id_uc

J’aimerai regrouper ce résultat pour compter les uc ayant le même NBRAM

comment faire ça ?

merci

edit : ortho

Tu peux faire une sous requête :

SELECT COUNT(*), ramByUcId.NBRAM FROM ( SELECT uc.id_uc SUM(contient.nb_ram*ram.type_ram/1000) AS NBRAM FROM uc INNER JOIN contient ON contient.id_uc = uc.id_uc INNER JOIN ram ON ram.id_ram = contient.id_ram ) AS ramByUcId GROUP BY ramByUcId.NBRAM

[quote=“mono, post:1, topic: 50927”]select uc.id_uc,sum(contient.nb_ram*ram.type_ram/1000) as NBRAM from uc,contient,ram where contient.id_uc=uc.id_uc and contient.id_ram=ram.id_ram GROUP BY uc.id_uc

J’aimerai regrouper ce résultat pour compter les uc ayant le même NBRAM [/quote]
c’est porc mais ca devrait marcher :

select count() as NbUC, A.NBRAM as NBRAM from (
select uc.id_uc,sum(contient.nb_ram
ram.type_ram/1000) as NBRAM from uc,contient,ram where contient.id_uc=uc.id_uc and contient.id_ram=ram.id_ram GROUP BY uc.id_uc) as A
Group by A.NBRAM

C’est juste un select imbriqué hein.
Et c’est très pratique quand on veut faire ce genre de calculs.

merci à vous !!! j’avais bien essayé la sous requête, j’avais zappé qu’on pouvait faire un alias sur une sous requête ^^

Encore merci !