lexis72
15.03.2013, 15:44:11
Witam,
Mam baze w ktorej sa wyniki liczbowe, kazdy wynik jest osobnym wierszem oprocz tego sa kolumny przyporzadokowujace te wyniki do okreslonych kryteriow np user_id mowie do jakiego uzytkownika nalezy ten wynik, grupa_id mowi w jakiej grupie zostal ten wynik zrobiony i inne nie wazne w tym problemie.
Chcialbym prosic was o pomoc z napisaniu zapytania ktore liczyloby dla wybranego uzytkownika ile razy jego wynik byl najmniejszy w tych grupach.
Przykladowo jak wygladaja te wyniki
User Grupa Wynik
1 1 20
5 1 26
3 1 29
5 2 33
7 2 34
1 2 38
Czyli na tym przykladzie jesli chcialbym sprawdzic ile razy wynik usera o ID 1 byl najmniejszy to byl najmniejszy raz ( w 1 grupie)
sazian
15.03.2013, 20:02:06
SELECT COUNT(*),Grupa FROM tabela t WHERE Wynik=(SELECT min(Wynik) FROM tabela t2 WHERE t.User=t2.User) AND User=1
lexis72
19.03.2013, 13:25:38
Jak w tym zapytaniu nazwany jest wynik ktory chce otrzymac, co ma pobrac? Probowalem zamknac te zapytanie w nawias i jakos je nazwac ale wtedy pobierany wynik nie jest poszukiwana przeze mnie wartoscia a numerami id grupy.
lexis72
21.03.2013, 16:13:28
Wiem do czego sluza aliasy ale nie wiem jak nazwac pobierana wartosc.
sazian
21.03.2013, 20:04:48
SELECT COUNT(*) c,Grupa FROM tabela t WHERE Wynik=(SELECT min(Wynik) FROM tabela t2 WHERE t.User=t2.User) AND User=1
suma jest pod nazwą c