Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MAX() i SUM() w jednym zapytaniu
TheTester
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 11.03.2009

Ostrzeżenie: (0%)
-----


Witam.

Potrzebuję małej porady odnośnie zsumowania maksymalnych wyników.
Przykład:
Tabela posiada różne wyniki różnych zagadek dla różnych użytkowników. Jeden użytkownik może mieć więcej niż jeden wynik dla tej samej zagadki.
Jak pobrać sumę najwyższych wyników ze wszystkich zagadek dla konkretnego użytkownika?

Gdybym chciał to przedstawić w postaci obrazowego kodu, to byłoby to coś w tym stylu:
  1. SELECT SUM(SELECT MAX(wynik) FROM punkty WHERE uzytkownik=1) FROM punkty WHERE uzytkownik=1
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
TheTester
post
Post #2





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 11.03.2009

Ostrzeżenie: (0%)
-----


Wiem, że mógłbym w zrobić to w PHP, ale wtedy straciłbym możliwość m.in. sortowania...doszedłem póki co do czegoś takiego:
  1. SELECT SUM(mx) FROM (SELECT MAX(wynik) AS mx FROM punkty WHERE uzytkownik=1 GROUP BY zagadka) AS noname

I takie zapytanie zwraca poprawny wynik, ale stanowi problem dla sytuacji gdy chciałbym pobrać listę użytkowników, którzy byli najlepsi, czyli coś takiego jak:
  1. SELECT u.imie, (SELECT SUM(mx) FROM (SELECT MAX(wynik) AS mx FROM punkty WHERE uzytkownik=u.id GROUP BY zagadka) AS noname) AS maxwynik FROM punkty p, uzytkownicy u WHERE u.id=p.uzytkownik ORDER BY maxwynik DESC


Ten post edytował TheTester 24.09.2010, 12:57:23
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 09:41