Récapitulatif - Entrepreneur immobilier
Fait partie de la section Les fondamentaux du Journey SQL de Coddy. Leçon 51 sur 72.
Défi
MoyenTables et colonnes disponibles :
real_estate:asset_id,value,datepotential:asset_id,forecast
Certains analystes prévoient quelle sera 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, si un actif avait une valeur de 5 au 2022-01-01 et de 10 au 2022-05-01, alors ce ratio est de 10/5 = 2.
Ignorez toutes les comparaisons pour lesquelles la différence en jours entre les deux dates est inférieure à 101.
Il existe de nombreuses dates pour chaque actif, donc de nombreux ratios à comparer. Conservez uniquement le ratio le plus grand pour chaque actif.
Enfin, divisez ce ratio par la prévision correspondante de la table potential (appelez 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 dont le ratio_forecast est supérieur à 1.
Remarque : Pour obtenir un résultat décimal lors d'une 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 conserver 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 conservant 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
1Introduction
IntroductionQu’est-ce qu’une base de donnéesConcepts des bases de donnéesValeurs uniques4D’autres mots-clés
Le mot-clé INLe mot-clé BETWEENLe mot-clé LIKELe mot-clé ASRécapitulatif - Modèles de téléphones portables2Conditions
Bases des conditionsLe mot-clé ANDLe mot-clé ORLe mot-clé NOTCombinaison de plusieurs conditionsParenthèsesBooléens5Opérations arithmétiques
Opérateurs mathématiquesColonnes mathématiquesL’opération moduloLa fonction ROUND()3Format de retour spécifique
Valeurs NULLTrier les résultats, partie 1Trier les résultats, partie 2Récapitulatif - Entreprise de cybersécuritéLimiter le nombre d’enregistrementsRécapitulatif - Usine de véhicules6Défis d’introduction
Récapitulatif - Élection parlementaireRécapitulatif - Arrestation criminelle par la policeRécapitulatif - Récipient de boisson au barRécapitulatif - Ingénieur de nouvelles colonnes9Tables multiples
Jointure de base, partie 1Jointure de base, partie 2Récapitulatif - JointureAuto-jointureRécapitulatif - Auto-jointureUnionSimplifier les requêtes, mot-clé WITHRécapitulatif - Requêtes WITHRécapitulatif - Entrepreneur immobilier12Fonctions de fenêtre – partie 2
Fonctions RANK & DENSE_RANKRécapitulatif – RANK & DENSE_RANKFonction NTILEFonctions d’agrégationCritère ROWS & RANGEEntraînez-vous par vous-même : Playground SQL