Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Grupowanie : TOP 3 w grupie?, Powoli watpie czy jest to mozliwe...
pppspoonman
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.02.2004
Skąd: Warszawa

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


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!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
SamoChwała
post
Post #2





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 28.07.2004
Skąd: Łódź

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


dodaj: LIMIT 0 , 3
Go to the top of the page
+Quote Post
pppspoonman
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.02.2004
Skąd: Warszawa

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


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...
Go to the top of the page
+Quote Post
toszcze
post
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.12.2003

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


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.
Go to the top of the page
+Quote Post
Parti
post
Post #5





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 22.07.2004

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


  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


(IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
pppspoonman
post
Post #6





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.02.2004
Skąd: Warszawa

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


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 :/
Go to the top of the page
+Quote Post
spenalzo
post
Post #7





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Oczywiście, że sie da.
Spróbuj zrobić coś na podstawie tego:
http://forum.php.pl/index.php?showtopic=9646&hl=
Go to the top of the page
+Quote Post
pppspoonman
post
Post #8





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.02.2004
Skąd: Warszawa

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


spenalzo : genialne, nie wiem skad autor to wytrzasnal (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) dzieki!
Go to the top of the page
+Quote Post
spenalzo
post
Post #9





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Też nie wiem, tym bardziej, że w manualu tego na 99% nie ma (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
FiDO
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


uboottd zawsze mial jakies mistyczne zrodla wiedzy i czasem szokowal rozwiazaniami.. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
szkoda, ze go juz nie ma (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Go to the top of the page
+Quote Post
spenalzo
post
Post #11





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Ale co nas nauczył to zostało (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Poza tym, zainteresował mnie bardziej MySQL (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

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: 7.10.2025 - 01:25