Recap - Real Estate Contractor
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 51 von 72.
Aufgabe
MittelVerfügbare Tabellen und Spalten:
<strong>real_estate</strong>:<strong>asset_id</strong>,<strong>value</strong>,<strong>date</strong><strong>potential</strong>:<strong>asset_id</strong>,<strong>forecast</strong>
Einige Analysten prognostizieren das Wachstum von Immobilienwerten. Wir möchten überprüfen, ob ihre Prognose zutrifft.
Berechnen Sie 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.
Ignorieren Sie alle Vergleiche, bei denen die Tagesdifferenz zwischen den beiden Daten kleiner als 101 ist.
Es gibt viele Daten für jedes Asset, daher gibt es viele Verhältnisse zu vergleichen. Behalten Sie nur das größte Verhältnis für jedes Asset.
Teilen Sie dieses Verhältnis schlussendlich durch die passende Prognose aus der Tabelle potential (nennen Sie dieses Feld ratio_forecast) und sortieren Sie die Ergebnisse in absteigender Reihenfolge.
Das Endergebnis sollte asset_id und ratio_forecast enthalten.
Behalten Sie nur die Assets, bei denen ratio_forecast größer als 1 ist.
Hinweis: Um bei einer Division (/) ein Dezimalergebnis zu erhalten, müssen Sie den Zähler manchmal mit 1.0 multiplizieren.
Verwenden Sie beispielsweise anstelle von a / b die Schreibweise 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: verbinde die Tabelle mit sich selbst, sodass 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, behalte nur den einzelnen größten Vergleich
GROUP BY r1.asset_id
) AS actual
JOIN potential ON ____
WHERE ratio_forecast > 1
ORDER BY ____Alle Lektionen in Grundlagen
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns9Multiple tables
Basic Join Part 1Basic Join Part 2Recap - JoinSelf joinRecap - Self JoinUnionSimplify queries, WITH keywordRecap - With QueriesRecap - Real Estate ContractorÜbe selbstständig: SQL-Playground