Riepilogo - Impresa edile immobiliare
Fa parte della sezione Fondamenti del percorso SQL di Coddy. Lezione 51 di 72.
Sfida
MedioTabelle e colonne disponibili:
real_estate:asset_id,value,datepotential:asset_id,forecast
Alcuni analisti prevedono quale sarà la crescita degli asset immobiliari. Vogliamo verificare se le loro previsioni sono corrette.
Per ogni asset nella tabella real_estate, calcola il rapporto tra il value di una data più recente e il valore di una data più vecchia.
Ad esempio, se c'è un asset il cui valore il 2022-01-01 era 5 e il 2022-05-01 era 10, il rapporto è 10/5 = 2.
Ignora tutti i confronti in cui la differenza in giorni tra le due date è inferiore a 101.
Ci sono molte date per ogni asset, quindi ci sono molti rapporti da confrontare. Tieni solo il rapporto più grande per ogni asset.
Infine, dividi questo rapporto per la previsione corrispondente della tabella potential (chiama questo campo ratio_forecast) e ordina i risultati in ordine decrescente.
Il risultato finale dovrebbe contenere asset_id e ratio_forecast.
Considera solo gli asset in cui ratio_forecast è maggiore di 1.
Nota: Per ottenere un risultato decimale dall'operazione di divisione (/), a volte è necessario moltiplicare il numeratore per 1.0.
Ad esempio, invece di a / b, usa a * 1.0 / b per ottenere il risultato decimale (quando a e b sono variabili)
Provalo tu
-- Query esterna: dividi il numero calcolato qui sotto per quello corrispondente dell'altra tabella
SELECT potential.asset_id, ____ AS ratio_forecast
FROM (
-- Query interna: unisci la tabella a se stessa per confrontare una riga precedente con una più recente
SELECT r1.asset_id, ____ AS ratio
FROM real_estate AS r1
JOIN real_estate AS r2 ON ____
-- Mantieni solo le coppie sufficientemente distanti nel tempo
WHERE JULIANDAY(r2.date) - JULIANDAY(r1.date) > ____
-- Una riga di risultato per gruppo, mantenendo solo il confronto con il valore più alto
GROUP BY r1.asset_id
) AS actual
JOIN potential ON ____
WHERE ratio_forecast > 1
ORDER BY ____Tutte le lezioni di Fondamenti
4Altre parole chiave
La parola chiave INLa parola chiave BETWEENLa parola chiave LIKELa parola chiave ASRiepilogo - Modelli di telefoni cellulari2Condizioni
Basi delle condizioniLa parola chiave ANDLa parola chiave ORLa parola chiave NOTCombinare più condizioniParentesiValori booleani5Operazioni aritmetiche
Operatori matematiciColonne matematicheL’operazione moduloLa funzione ROUND()3Formato di restituzione specifico
Valori nullOrdinare i risultati Parte 1Ordinare i risultati Parte 2Riepilogo - Azienda di sicurezza informaticaLimitare il numero di recordRiepilogo - Fabbrica di veicoli6Sfide introduttive
Ripasso - Elezione parlamentareRipasso - Arresto di un criminale da parte della poliziaRipasso - Contenitore per bevande da barRipasso - Progetta nuove colonne9Tabelle multiple
JOIN di base, parte 1JOIN di base, parte 2Riepilogo - JOINSelf joinRiepilogo - Self joinUNIONSemplificare le query, parola chiave WITHRiepilogo - Query con WITHRiepilogo - Impresa edile immobiliare12Funzioni finestra, parte 2
Funzioni RANK e DENSE_RANKRipasso: RANK e DENSE_RANKFunzione NTILEFunzioni di aggregazioneCriteri ROWS e RANGEEsercitati da solo: Playground SQL