Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Grupowanie i kolejność wyników
johnson
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 2
Dołączył: 3.12.2004

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


Są takie oto rekordy (tabela uzytkownicy):

Kod
+---------+-----------+-------------+
|    id   | zespol_id |    imie     |
+---------+-----------+-------------+
|    1    |     3     |  Karolina   |
|    2    |     3     |  Mateusz    |
|    3    |     3     |  Magda      |
|    4    |     3     |  Andrzej    |
+---------+-----------+-------------+


Teraz grupując zapytaniem:
  1. SELECT count(*) AS liczba, imie, id
  2. FROM uzytkownicy GROUP BY zespol_id


otrzymujemy liczbę użytkowników w danym zespole oraz imię jednego użytkownika w tym teamie oraz jego id, problem polega jednak na tym, że w żaden sposób nie można wpłynąć na to, które imię się wyświetli

Czy można w jakiś sposób wpłynąć na to, które imię się wyświetli (np. posortować alfabetycznie i zwróci się pierwsze; dobrze by też było jakby zwracane było właściwe dla tego użytkownika id)(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
amwoan
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 16.05.2005

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


Cytat(johnson @ 2005-05-22 17:58:17)
Przypuśćmy, że istnieje dodatkowe pole 'wiek' i chcemy, uzyskać liczbę użytkowników w grupie i imię oraz wiek najstarszego użytkownika w grupie. Jak to osiągnąć?

Wiek najstarszego użytkownika uzyskasz używając MAX(wiek), natomiast co do pozostałych informacji... Powiem inaczej, a co jeśli w danej grupie jest więcej ludzi o takim samym wieku? Dlatego takie zapytanie jest nielogiczne. Jeżeli coś grupujesz, to aby uzyskać jednoznaczność, musisz albo wybierać pola, po których następuje grupowanie albo używać funkcji agregujących na pozostałych polach.

To co chcesz uzyskać można robić wieloma zapytaniami, bądź użyć MySQL'a w wersji minimum 4.1, gdzie można stosować zagnieżdżone SELECTy. Można też kombinować z tablicami tymczasowymi, dla starszych wersji. Poza tym nie widzę problemu, aby jednak po prostu zliczyć ilość zwróconych wierszy.
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: 3.10.2025 - 21:36