Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja MAX()
Przeszczep
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 19.05.2013

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


Mam takie zapytanie:
  1. SELECT MAX(wzrost) AS max_wzrost
  2. FROM Noworodki
  3. GROUP BY plec;

Gdy chce dodac imię dostaję błąd, że imie nie jest elementem funkcji agregującej. Rozumiem, że gdy dodaję imię to mogłyby być różne imiona i ten sam wzrost. Jak to rozwiązać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mmmmmmm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


@Przeszczep
  1. SELECT data_urodzenia
  2. FROM Noworodki
  3. GROUP BY data_urodzenia
  4. HAVING Count(identyfikator_matki)=2;

Działa prawie dobrze. Pokazuje ci daty, w których urodziła się dwójka dzieci. Aby miały jeszcze wspólną matkę, to trzeba jeszcze jedno grupowanie dodać (po matce).
  1. SELECT data_urodzenia
  2. FROM Noworodki
  3. GROUP BY data_urodzenia, identyfikator_matki
  4. HAVING Count(identyfikator_matki)=2;


@Dejmien_85
  1. SELECT Max(wzrost) FROM Noworodki

nie zwraca tego samego, co:
  1. SELECT * FROM Noworodki ORDER BY Wzrost DESC LIMIT 1

Zadaniem było "wybrać z tabeli najwyższego bobasa", a nie "WZROST najwyższego bobasa"

Ten post edytował mmmmmmm 29.05.2013, 09:36:34
Go to the top of the page
+Quote Post
Dejmien_85
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

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


Cytat(mmmmmmm @ 29.05.2013, 10:36:19 ) *
Zadaniem było "wybrać z tabeli najwyższego bobasa", a nie "WZROST najwyższego bobasa"


Nieprawda, założyciel teamtu był zainteresowany najwyższym wzrostem + imieniem, co najprościej można załatwić w ten sposób:

  1. SELECT Max(wzrost), imie
  2. FROM Noworodki


Zwięźle i na temat. (IMG:style_emoticons/default/smile.gif)

EDIT: Dobra, zaszło nieporozumienie. Jeden pyta się o wzrost i imie, drugi pisze o najwyższym dzieciaku i podaje osobny przykład - pomyliłem się. Powyższy przykład jest dla imienia + wzrost, a mój wcześniejszy przykład to rzeczywiście niedopatrzenie. SELECT * zwraca wszystkie kolumny, a MAX() jedynie jedną kolumnę (wyjątek: gdy dopisze się nazwy innych).

Ten post edytował Dejmien_85 29.05.2013, 22:38:10
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: 13.10.2025 - 18:20