Recap - Real Estate Contractor
Fait partie de la section Les fondamentaux du Journey SQL de Coddy. Leçon 51 sur 72.
Défi
MoyenTables et colonnes disponibles :
<strong>real_estate</strong>:<strong>asset_id</strong>,<strong>value</strong>,<strong>date</strong><strong>potential</strong>:<strong>asset_id</strong>,<strong>forecast</strong>
Certains analystes prévoient quelle va être la croissance des actifs immobiliers. Nous voulons vérifier si leurs prévisions sont exactes.
Pour chaque actif de la table real_estate, calculez le ratio entre la value d'une date plus récente et la valeur d'une date plus ancienne.
Par exemple, s'il y a un actif dont la valeur au 2022-01-01 était de 5 et au 2022-05-01 était de 10, alors ce ratio est de 10/5 = 2.
Ignorez toutes les comparaisons où la différence de jours entre les deux dates est inférieure à 101.
Il y a plusieurs dates pour chaque actif, donc plusieurs ratios à comparer. Ne conservez que le plus grand ratio pour chaque actif.
Enfin, divisez ce ratio par le forecast correspondant de la table potential (nommez ce champ ratio_forecast) et triez les résultats par ordre décroissant.
Le résultat final doit contenir asset_id et ratio_forecast.
Ne conservez que les actifs pour lesquels le ratio_forecast est supérieur à 1.
Remarque : Pour obtenir un résultat décimal avec l'opération de division (/), vous devez parfois multiplier le numérateur par 1.0.
Par exemple, au lieu de a / b, utilisez a * 1.0 / b pour obtenir le résultat décimal (lorsque a et b sont des variables).
Essayez vous-même
-- Requête externe : diviser le nombre calculé ci-dessous par celui correspondant de l'autre table
SELECT potential.asset_id, ____ AS ratio_forecast
FROM (
-- Requête interne : apparier la table avec elle-même pour qu'une ligne plus ancienne puisse être comparée à une plus récente
SELECT r1.asset_id, ____ AS ratio
FROM real_estate AS r1
JOIN real_estate AS r2 ON ____
-- Ne garder que les paires suffisamment éloignées dans le temps
WHERE JULIANDAY(r2.date) - JULIANDAY(r1.date) > ____
-- Une ligne de résultat par groupe, en ne gardant que la seule plus grande comparaison
GROUP BY r1.asset_id
) AS actual
JOIN potential ON ____
WHERE ratio_forecast > 1
ORDER BY ____Toutes les leçons de Les fondamentaux
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 ContractorEntraînez-vous par vous-même : Playground SQL