![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
W tabeli ze statystykami użytkowników potrzebuję dla każdego pobrać ilość wygranych. Wygrana jest oznaczona w kolumnie position jako 1.
moje przykładowa tabela statistic user_id ; points ; position 1 ; 23 ; 3 1 ; 25 ; 1 1 ; 20 ; 1 2 ; 21 ; 2 2 ; 22 ; 2 2 ; 26 ; 1 3 ; 19 ; 3 3 ; 21 ; 3 3 ; 24 ; 2 Próbowałem takim podzapytaniem ale zwraca mi przy każdym użytkowniku sumę wszystkich position = 1 a więc 3 a ja chciałem aby policzył ile ma każdy z osobna:
Jak to powinienem zrobić ? Ten post edytował damianooo 28.10.2017, 23:29:43 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
zapytanie wylicza faktycznie ile kto ma wygranych ... niestety jednak nie pokazuje mi użytkowników, którzy nie wygrali ani razu (IMG:style_emoticons/default/sad.gif)
poza tym przelicza mi źle inne dane ... ok może pokażę może jakie mam kompletne zapytanie:
do tego brakuje mi teraz przeliczenia dla każdego użytkownika ile ma wygranych (a więc position = 1) ale tak aby Ci co mają zero też byli wyświetlani na liście. Ten post edytował damianooo 29.10.2017, 21:07:02 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
LEFT JOIN z tabelą statystyk, aby pokazać wszystkich użytkowników.
Wygrane należy liczyć jeśli position=1, czyli na zasadzie SUM(IF(s.position=1,1,0)). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
ehh nie wiem czy dobrze zrozumiałem.
Zrobiłem tak i nie działa:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Warunek z WHERE wyrzuć, przecież chcesz wszystkich użytkowników, takich, którzy nie mieli wyników i takich, którzy mieli jakikolwiek.
Dla każdego użytkownika chcesz obliczyć ilość wygranych, więc wyrażenie, które podałem wyżej wstaw do listy pól/wyrażeń. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za pomoc ! Działa !
Proste tylko trzeba potrenować ale tak to jest jak się na co dzień nie pisze za dużo SQLi (IMG:style_emoticons/default/wink.gif) Tak jest ok:
pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 19:40 |