[SQL] Subquery, Problem ze zliczeniem |
[SQL] Subquery, Problem ze zliczeniem |
28.10.2017, 23:28:24
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 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 |
|
|
29.10.2017, 07:41:21
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
-------------------- |
|
|
29.10.2017, 20:53:16
Post
#3
|
|
Grupa: Zarejestrowani Postów: 493 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
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 |
|
|
29.10.2017, 21:07:30
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 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)). -------------------- |
|
|
29.10.2017, 22:20:39
Post
#5
|
|
Grupa: Zarejestrowani Postów: 493 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:
|
|
|
29.10.2017, 22:28:41
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 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ń. -------------------- |
|
|
30.10.2017, 20:23:41
Post
#7
|
|
Grupa: Zarejestrowani Postów: 493 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 Tak jest ok:
pozdrawiam |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 08:41 |