Rückblick – Immobilienauftragnehmer
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 51 von 72.
Aufgabe
MittelVerfügbare Tabellen und Spalten:
real_estate:asset_id,value,datepotential:asset_id,forecast
Einige Analysten prognostizieren, wie stark Immobilienwerte wachsen werden. Wir möchten überprüfen, ob ihre Prognose zutrifft.
Berechne für jedes Asset in der Tabelle real_estate das Verhältnis zwischen dem value eines neueren Datums und dem Wert eines älteren Datums.
Wenn beispielsweise ein Asset am 2022-01-01 den Wert 5 und am 2022-05-01 den Wert 10 hatte, beträgt dieses Verhältnis 10/5 = 2.
Ignoriere alle Vergleiche, bei denen der Tagesunterschied zwischen den beiden Daten kleiner als 101 ist.
Für jedes Asset gibt es viele Daten und daher viele zu vergleichende Verhältnisse. Behalte nur das größte Verhältnis für jedes Asset.
Teile dieses Verhältnis schließlich durch die passende Prognose aus der Tabelle „potential“ (nenne dieses Feld ratio_forecast) und sortiere die Ergebnisse absteigend.
Das Endergebnis sollte asset_id und ratio_forecast enthalten.
Behalte nur die Assets, bei denen ratio_forecast größer als 1 ist.
Hinweis: Um bei einer Division (/) ein Dezimalergebnis zu erhalten, musst du den Zähler manchmal mit 1.0 multiplizieren.
Verwende beispielsweise statt a / b a * 1.0 / b, um das Dezimalergebnis zu erhalten (wenn a und b Variablen sind).
Probier es selbst
-- Äußere Abfrage: teile die unten berechnete Zahl durch die passende aus der anderen Tabelle
SELECT potential.asset_id, ____ AS ratio_forecast
FROM (
-- Innere Abfrage: verknüpfe die Tabelle mit sich selbst, damit eine ältere Zeile mit einer neueren verglichen werden kann
SELECT r1.asset_id, ____ AS ratio
FROM real_estate AS r1
JOIN real_estate AS r2 ON ____
-- Behalte nur die Paare, die zeitlich weit genug auseinander liegen
WHERE JULIANDAY(r2.date) - JULIANDAY(r1.date) > ____
-- Eine Ergebniszeile pro Gruppe, wobei nur der einzelne größte Vergleich behalten wird
GROUP BY r1.asset_id
) AS actual
JOIN potential ON ____
WHERE ratio_forecast > 1
ORDER BY ____Alle Lektionen in Grundlagen
4Weitere Schlüsselwörter
Das IN-SchlüsselwortDas BETWEEN-SchlüsselwortDas LIKE-SchlüsselwortDas AS-SchlüsselwortRückblick – Handymodelle7Datumsangaben
Datumsangaben behandeln – Teil 1Datumsangaben behandeln – Teil 2Datumsangaben behandeln – Teil 32Bedingungen
Grundlagen der BedingungenDas Schlüsselwort ANDDas Schlüsselwort ORDas Schlüsselwort NOTMehrere kombinierte BedingungenKlammernBoolesche Werte5Arithmetische Operationen
Mathematische OperatorenMathematische SpaltenDie Modulo-OperationDie ROUND()-Funktion3Spezifisches Rückgabeformat
NULL-WerteErgebnisse sortieren Teil 1Ergebnisse sortieren Teil 2Zusammenfassung - Cyber Security FirmAnzahl der Datensätze begrenzenZusammenfassung - Vehicle Factory6Einführungsaufgaben
Wiederholung – ParlamentswahlWiederholung – Festnahme eines Straftäters durch die PolizeiWiederholung – Getränkebehälter an der BarWiederholung – Neue Spalten erstellen9Mehrere Tabellen
Grundlegender Join Teil 1Grundlegender Join Teil 2Rückblick – JoinSelf-JoinRückblick – Self-JoinUnionAbfragen vereinfachen, WITH-SchlüsselwortRückblick – WITH-AbfragenRückblick – ImmobilienauftragnehmerÜbe selbstständig: SQL-Playground