• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed [MySQL] Problem z wyświetleniem maksymalnej wartości

Mały hosting, OGROMNE możliwości
0 głosów
2,818 wizyt
pytanie zadane 29 kwietnia 2015 w SQL, bazy danych przez marcin_w Gaduła (3,190 p.)
zamknięte 29 kwietnia 2015 przez marcin_w
Robiąc zadania domowe od Pana Mirka z 2 odcinka MySQL'a natrafiłem na problem w tym zadaniu: "Samochód w bazie (marka, model), którego ubezpieczenie jest najdroższe z wszystkich aut." Próbuję wpisać to polecenie :

  select marka, model, max(ubezpieczenie) from auta;  

jednak to nic nie daje. Moim zdaniem powinno wyświetlać maksymalną wartość bez problemu. Proszę o pomoc w rozwiązaniu tego problemu.
komentarz zamknięcia: Problem rozwiązany :)

2 odpowiedzi

+1 głos
odpowiedź 29 kwietnia 2015 przez SyntaxError Pasjonat (17,170 p.)
edycja 29 kwietnia 2015 przez SyntaxError
 
Najlepsza

Możesz zrobić:

SELECT marka, model FROM auta ORDER BY ubezpieczenie DESC LIMIT 1

Wyjdzie to samo.:P A funkcja max równieź powinna działać tylko że nie wyciągnie Ci ona w takim przypadku marki i modelu tego auta.

komentarz 29 kwietnia 2015 przez marcin_w Gaduła (3,190 p.)
Ta metoda wydaje się  taka "na około" bo także uważam że funkcja max powinna działać a nie działa. Mimo to twój sposób zadziałał. Dzięki za szybką odpowiedź, ludzie czuwają na tym forum niczym strażnicy teksasu :D.
komentarz 29 kwietnia 2015 przez SyntaxError Pasjonat (17,170 p.)

A wpisz

SELECT max(ubezpieczenie) FROM auta;

To zobaczysz dlaczego Ci nie zadziałało to co wpisałeś. Zadziała, ale zwróci Ci tylko największą wartość ubezpieczenia i nic więcej.  

komentarz 29 kwietnia 2015 przez marcin_w Gaduła (3,190 p.)
Właśnie to polecenie miałem na myśli. Próbowałem wcześniej, ale w przeglądarce nie wyświetla się NIC. Jedynie co widać to nazwy kolumn oraz słowo : "znaleziono: 1". Domyślam się że samo zapytanie działa, lecz z jakiegoś powodu się nie wyświetla.
komentarz 29 kwietnia 2015 przez SyntaxError Pasjonat (17,170 p.)

Jak wyświetlasz to w PHP-ie to pamiętaj że to będzie w tablicy asocjacyjnej pod indexem max(ubezpiecznie). Możesz temu zaradzić robiąc np. tak:

SELECT max(ubezpieczenie) AS maks FROM auta;

I wtedy będzie pod:

$tablica['maks']

 

komentarz 29 kwietnia 2015 przez marcin_w Gaduła (3,190 p.)
Nie wyświetlam tego w PHP. Używam standardowo Notepada ++, xamppa, oraz przeglądarki. Próbowałem również użycie aliasu tak jak ty to przedstawiłeś w swoim przykładzie, ale efekt jest ten sam.
+2 głosów
odpowiedź 29 kwietnia 2015 przez Tomasz90 Nałogowiec (25,140 p.)
SELECT marka, model, ubezpieczenie FROM auta WHERE ubezpieczenie = (SELECT MAX(ubezpieczenie) FROM auta);

Najpierw wykonuje się ten select w nawiasie i szuka maksymalnego ubezpieczenia. Gdy je znajdzie podstawia ta wartość do tego co masz w klauzuli where i wykonuje to zapytanie.
komentarz 29 kwietnia 2015 przez marcin_w Gaduła (3,190 p.)
Próbowałem podobnej kombinacji, lecz nie udało się, rozwiązanie podał już wcześniej SyntaxError. Mimo to twój sposób również działa dzięx ;).
komentarz 11 grudnia 2018 przez DanyL Nowicjusz (100 p.)

a moze po prostu: SELECT marka, model, ubezpieczenia FROM auta ORDER BY ubezpieczenie DESC

Podobne pytania

+1 głos
1 odpowiedź 471 wizyt
pytanie zadane 17 czerwca 2015 w SQL, bazy danych przez niezalogowany
0 głosów
1 odpowiedź 587 wizyt
pytanie zadane 30 listopada 2015 w SQL, bazy danych przez well Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 300 wizyt
pytanie zadane 29 maja 2015 w SQL, bazy danych przez rob_suc87 Nowicjusz (210 p.)

93,715 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,258 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...