chcialem stworzyc TOP 10 najchetniej zamawianych produktow, wszystko by bylo w porzadku, gdyby nie to, ze wiele tych samych produktow (lecz rozniacych sie np. kolorem) ma ten sam numer kodowy (oprocz tego jest takze uniklane id). W zwiazku z tym nie interesuje mnie np. zebym w TOP 10 mial np. monitor bialy i monitor czarny, tylko po prostu monitor.
Aktualnie robie to nieelegancko, czyli tak:
SELECT COUNT( * ) AS ile, id_zam FROM statystyki GROUP BY id_zam ORDER BY ile DESC LIMIT 10
No i mam 10 najchetniej kupowanych produktow. I teraz wystarczy, ze w petli 10 razy odwolam sie do id_produktu, gdzie na koncu zapytania dam GROUP BY id_produktu.
Mowiac scislej mam np.
7 produktow o numerze 1234 (7 roznych kolorow)
i 13 zamowien tego produktu (o numerze 1234 - nie interesuje mnie jakie to byly kolory)
Probowalem cos takiego:
SELECT COUNT(*) AS ile,id_content FROM statystyki,produkty WHERE id_content=id_zam GROUP BY id_content,id_zam ORDER BY ile DESC
grupuje mi ladnie, tyle ze count zlicza caly iloczyn kartezjanski :/
Probowalem z podzapytaniem (zeby w juz mial pogrupowane najpierw produkty, a pozniej grupowal po zamowieniach), ale cos sie zawiesza - moze jakos zle je skonstruowalem.
Jezeli ktos widzi rozwiazanie prosilbym o przyklad.