SQL Preis nach Durchschnittspreis sortieren

Gedankenpolizei

Cadet 4th Year
Registriert
März 2021
Beiträge
100
Hallo,
ich bin gerade am Verzweifeln, da ich wohl einen dummen Fehler einfach nicht erkenne.

Was genau ist an meinem Code nicht richtig?

Fragestellung:
Write a query to output the apartments whose prices are greater than the average and are also not rented, sorted by the 'Price' column.

Meine Lösungen:

SELECT * FROM Apartments
WHERE price > (SELECT AVG(price) FROM Apartments)
AND status = 'Not Rented'
ORDER BY price;

SELECT * FROM Apartments
WHERE price > AVG(price)
AND status = 'Not Rented'
ORDER BY price;
 
Was geht denn konkret nicht? Was passiert, wenn du die Sachen einzeln ausführst, also z.B. das SELECT AVG(price) usw? Kommt da raus was soll?
WIe sehen die Daten in der Datenbank konkret aus?

"Preis nach Durchschnittspreis sortieren" - also viel falscher hättest du die Aufgabe nicht zusammenfassen können ;-)


Also Beispiel:
SELECT * FROM Apartments
führt wohl zum erwarteten Ergebnis (natürlich nicht dem erwünschten)

SELECT * FROM Apartments
ORDER BY price;
Funktioniert das?

SELECT * FROM Apartments
WHERE status = 'Not Rented'
funktioniert das?

SELECT AVG(price) FROM Apartments
Funktioniert das?

SELECT * FROM Apartments
WHERE price > (SELECT AVG(price) FROM Apartments)
funktioniert das?

(funktionieren = das erwartete Ergebnis wird angezeigt, nicht das aus der Aufgabe erwünschte)
 
  • Gefällt mir
Reaktionen: DJMadMax und madmax2010
@Domski: Wir wissen ja nicht mal, ob eine Fehlermeldung kommt
Ich könnte mir z.B. auch vorstellen, dass der Status falsch ist, und es "Not Rented" gar nicht gibt, sondern nur "Not rented" usw...
 
bei dem unbekannten DBMS welche bei der unkannten DB und der 1. Query was auch immer nicht macht wie erwartet ...
koennte zudem eine CTE effizienter sein, sofern unterstuetzt und der Query Optimizer das nicht selbst hinbekommt die Subquery nur einmal auszufuehren
 
@tollertyp
Ja... danke.
Mit "Not rented" geht es und "Not Rented" war falsch. Ich hätte schwören können, dass ich das auch mehrmals probiert habe, aber wahrscheinlich wo anders einen Fehler eingebaut habe.

War gerade mit mehreren Unterbrechungen 2 Stunden dran. Habe seit 26 Stunden nicht geschlafen. Ist wohl die Konzentration...

Sorry und danke!
 
  • Gefällt mir
Reaktionen: DJMadMax und tollertyp
Deshalb eben die Abfragen in kleineren Versionen prüfen um die Ursache einzugrenzen.
 
Group by plus having ist da der passende Ansatz.

Fragestellung bitte noch mal neu übersetzen. Die paßt nicht zum Threadtitel.
 
  • Gefällt mir
Reaktionen: ella_one und PHuV
Zurück
Oben