kropamk
6.09.2012, 14:43:03
Witam serdecznie,
głowię się jak zrobić coś takiego.... mam tabele "vote" w której przechowuję rekordy.
Rekordy się powtarzają ze względu na kolumnę "name" ponieważ każdy użytkownik może oddać głoś na ten sam element.
Chciałbym posortować tak aby zwracało mi wynik od pozycji, na którą oddano najwięcej głosów. Czy jest takie coś możliwe na jedne tabeli ? Czy jakoś da się to zrobić

Pozdrawiam.
b4rt3kk
6.09.2012, 14:51:47
SELECT COUNT(name) AS liczba_glosow, name FROM vote GROUP BY name ORDER BY liczba_glosow DESC
kropamk
7.09.2012, 07:30:46
Nie do końca chyba przekazałem swoją treść.
liczba_glosow - źle mnie zrozumiałeś, ponieważ ja w tej tabeli a dokładnie w tej kolumnie nie mam już zliczonych głosów (czyli np. 10) tylko przechowuję jego id z innej tabeli.
Czyli np mam :
id, name, id_name, user
1, Rodzaj1, 1, user1
2, Rodzaj2, 2, user1
3, Rodzaj2, 3, user2
4, Rodzaj1, 1, user2
I potrzebuję zliczyć sumę dla każdego name któremu odpowiada jego własne id_name (np. Rodzaj2 ma id_name odpowiednio 2 i 3 ponieważ występuje dwa razy [ w tabeli name są dla niego przypisane dwa różne adresy i dlatego występuję pod Rodzaj2 ale posiada dwa różne id_name])
nospor
7.09.2012, 07:40:26
liczba_glosow to nie żadna kolumna a ALIAS dla COUNT(NAME)....
Dostałeś poprawne zapytanie, ale nie raczyłeś się nawet nad nim zastanowić....Skoro nie chcesz grupować po NAME a po ID_NAME, to poprostu zmodyfikuj podane tu zapytanie o te ID_NAME