Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] GROUP BY i LIMIT
noob89
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 30.03.2009

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


Witam,
Mam taką tabelę w bazie danych:
Kod
UserId | Dane | Count
-------+------+------
   1   |  44  |  10
   1   |  44  |  8
   1   |  44  |  5
   1   |  44  |  6
   1   |  44  |  4
   2   |  44  |  22
   3   |  44  |  3
   2   |  44  |  25
   2   |  44  |  6
   2   |  44  |  1
   2   |  44  |  2
   3   |  44  |  26
   3   |  44  |  5
   3   |  44  |  7

I teraz mam problem. Muszę za pomocą jednego zapytania SQL wybrać po 3 największe rekordy (Count) dla każdego użytkownika (UserId).
Próbowałem już robić to z GROUP BY... z LIMIT ale jak do tej pory nie osiągnąłem zamierzonego efektu.

Pozdrawiam i proszę o pomoc.

Ten post edytował noob89 17.12.2010, 21:19:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


  1. SELECT `UserId`, `Dane`, MAX(`COUNT`) FROM `tabela` GROUP BY `UserId` LIMIT 3.


Ten post edytował sadistic_son 17.12.2010, 21:40:13


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
noob89
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 30.03.2009

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


To wyciąga tylko 3 rekordy a ja potrzebuję taki wynik:
Kod
UserId | Dane | Count
-------+------+------
   1   |  44  |  10
   1   |  44  |  8
   1   |  44  |  6

   2   |  44  |  25
   2   |  44  |  22
   2   |  44  |  6

   3   |  44  |  26
   3   |  44  |  7
   3   |  44  |  5


Ten post edytował noob89 17.12.2010, 22:06:24
Go to the top of the page
+Quote Post
sadistic_son
post
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


  1. SELECT `UserId`, `Count` FROM tabela ORDER BY `UserId` ASC AND `Count`DESC


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
noob89
post
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 30.03.2009

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


Ale to zapytanie i tak mi nie wybierze po 3 rekordy dla każdego użytkownika (UserId). To tylko wyświetli wszystkie znajdujące się rekordy w tabeli oraz je posortuje.
Go to the top of the page
+Quote Post
sadistic_son
post
Post #6





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Nie zrobisz tego w jednym zapytanie.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 18:44