Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grupowanie : TOP 3 w grupie?
Forum PHP.pl > Forum > Bazy danych > MySQL
pppspoonman
Mam zadanie do rozwiazania. Mamy tabele id, kategoria, liczba. Latwo grupujac po kategorii wyciagnac MAX(), SUM() itd. Ale czy jest mozliwe (a zaczynam watpic) zeby w kazdej grupie wyswietlic np. 3 maxymalne rekordy? Np. tak:

Kod
kat liczba
1   66
1   25
1   24
2   111
2   98
2   69
3   5
3   4
3   3


Duze z pianka kto potrafi to zrobic w MySQL w jednym zapytaniu!
SamoChwała
dodaj: LIMIT 0 , 3
pppspoonman
Niestety, nie uda sie. LIMIT 0, 3 zadziala na wszystkie rekordy i wyswietli tylko 3 ze wszystkich zwroconych przez baze, a nie tylko 3 z kazdej grupy :/

Problem dalej nie rozwiazany...
toszcze
Niestety - jesli robisz grupowanie w celu sumowania rekordow, to nie wyciagniesz w tym samym zapytaniu trzech rekordow z kazdej grupy. Musisz zastosowac tutaj drugie zapytanie, ktore na podstawie klucza grupowania z pierwszego zapytania wyciagnie trzy rekordy z tej grupy.
Parti
  1. SELECT t1.kat, t1.val FROM tab AS t1 WHERE t1.val >= (SELECT t2.val FROM tab AS t2 WHERE t1.kat = t2.kat ORDER BY t2.val DESC LIMIT 2, 1) GROUP BY t1.kat, t1.val ORDER BY t1.kat, t1.val DESC


biggrin.gif
pppspoonman
toszcze : nie chce sumowac rekordow tylko wyciagnac 3 najwyzsze wartosci

Parti : ale to juz podzapytanie. Powoli watpie, czy da sie to zrobic bez podzapytania... Niestety MySQL pod ktorego topisze, nie obsluguje podzapytan :/
spenalzo
Oczywiście, że sie da.
Spróbuj zrobić coś na podstawie tego:
http://forum.php.pl/index.php?showtopic=9646&hl=
pppspoonman
spenalzo : genialne, nie wiem skad autor to wytrzasnal biggrin.gif dzieki!
spenalzo
Też nie wiem, tym bardziej, że w manualu tego na 99% nie ma snitch.gif
FiDO
uboottd zawsze mial jakies mistyczne zrodla wiedzy i czasem szokowal rozwiazaniami.. smile.gif
szkoda, ze go juz nie ma sadsmiley02.gif
spenalzo
Ale co nas nauczył to zostało smile.gif
Poza tym, zainteresował mnie bardziej MySQL snitch.gif tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.