SQL-Abfrage min und max (in WHERE-Bedingung?)?
Hallo,
folgende Aufgaben: Unter welchen Gebrauchtwagennummern zahlt man zwischen 10.000$ und 15.000$ ?
Welches Modell hat die meisten PS?
Unsere SQL-Abfragen hatten immer diesen Aufbau: SELECT xx FROM xx WHERE xx (ODER BY xx )
Ich frage mich jetzt, ob man max und mix in die WHERE-Bedingung schreiben darf und wie das aussehen könnte. Da ja bei der zweiten Frage, nach dem Modell gefragt wird, gehen ich mal davon aus, dass der Anfang so ausschaut:
SELECT ''Model'' FROM ''Gebrauchtwagen'' WHERE ..? jetzt sollte der max teil kommen, aber wie soll der formuliert werden? Ich bitte um HILFE !!!
Das Bild mit den Autos bezieht sich darauf, ich weiß nicht, wie man das andere Bild entfernt, also beachtet es am besten nicht.
(
2 Antworten
WHERE preis>=10000 AND preis <= 15000
oder
WHERE preis BETWEEN 10000 AND 15000
----
SELECT Model FROM ... WHERE ps=(SELECT MAX(ps) FROM ...)
Da das MAX als Aggregatfunktion eine Spalte zusammenfasst, darf das nicht direkt im WHERE stehe, soweit ich weiss. Es braucht dafür das Subselect.
Was meinst du, was die 2. Abfrage mit dem Subselect oben liefert ? Für das Baujahr braucht es kein Subselect, da kannst du einfach select min(baujahr) from... machen, weil du nach der gleichen Spalte fragst.
Beispiele findest Du z.B. hier:
MySQL MAX Function - Find the Maximum Value in a Set (mysqltutorial.org)
Du kannst z.B. fragen:
select max(PS), Modell from gebrauchtwagen
oder
SELECT * FROM gebrauchtwagen WHERE PS = (SELECT max(PS) FROM gebrauchtwagen)
Danke für deine Antwort!
und wie wäre das, bei dieser Aufgabe: h) Welches Modell hat die meisten PS?
oder i) Wie lautet das Baujahr des ältesten Autos?