![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam proste zapytanie:
Zwraca mi ilości dla każdego ze sprzedanych artykułów od początku istnienia bazy. Chodzi o to aby wyciągnąć, który z nich był najczęściej kupowany. Ogólnie zapytanie działa tylko zabrakło mi pomysłów w jaki sposób to posortować. Przy order by ilosc desc wychodzą mi głupoty (pewnie sortuje w/g pierwszego napotkanego pola i resztę ignoruje). Gdy daję order by sum(ilosc) desc MySQL wywala mi błąd. Tak więc - jak to posortować najlepiej z opcją desc ? pzdr Jeśli ktoś zna odpowiedź to bardzo proszę. Oczywiście poradziłem sobie dzięki array_multisort(); ale nurtuje mnie to... Wiem, że trzeba użyć podzapytania i było by to najprostsze ale tutaj nie dość, że jest distinct to jeszcze sum. pzdr Ten post edytował cudny 5.12.2009, 00:12:08 -------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 26 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
w bazie możesz posortować przez ORDER BY SUM(ilosc) DESC, lub ORDER BY 2 DESC (sortuje po drugiej kolumnie)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Po co Ci naraz DISTINCT i GROUP BY? Samo GROUP BY powinno wystarczyć.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie nie potrzebne jest distinct, grupowanie daje od razu zamierzony efekt, mój błąd.
Natomiast order by sum(ilosc) desc wywala błąd tak jak mówiłem ale za to order by 2 desc rozwiązało całkowicie mój problem. W rezultacie:
Dzięki za sugestie. 2 plusy pzdr -------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Trzeba było alias zastosować
![]() Kod SELECT id, sum( ilosc ) AS sumIlosc FROM zamowienia GROUP BY id ORDER BY suymIlosc DESC
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 07:08 |