Recap - Real Estate Contractor
Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 51 de 72.
Desafío
IntermedioTablas y columnas 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>
Algunos analistas pronostican cuál va a ser el crecimiento de los activos inmobiliarios. Queremos comprobar si su pronóstico es cierto.
Para cada activo en la tabla real_estate, calcula la proporción entre el value de una fecha más reciente y el valor de una fecha más antigua.
Por ejemplo, si hay un activo cuyo valor al 2022-01-01 era 5 y al 2022-05-01 era 10, entonces esa proporción es 10/5 = 2.
Ignora todas las comparaciones en las que la diferencia de días entre las dos fechas sea menor que 101.
Hay muchas fechas para cada activo, por lo que hay muchas proporciones para comparar. Conserva solo la proporción más grande para cada activo.
Finalmente, divide esta proporción con el pronóstico correspondiente de la tabla potential (llama a este campo ratio_forecast) y ordena los resultados en orden descendente.
El resultado final debe tener el asset_id y ratio_forecast.
Conserva solo los activos donde el ratio_forecast sea mayor que 1.
Nota: Para obtener una solución decimal de la operación de división (/), a veces necesitas multiplicar el numerador por 1.0.
Por ejemplo, en lugar de a / b utiliza a * 1.0 / b para obtener el resultado decimal (cuando a y b son variables)
Pruébalo tú mismo
-- Consulta externa: divide el número calculado abajo por el correspondiente de la otra tabla
SELECT potential.asset_id, ____ AS ratio_forecast
FROM (
-- Consulta interna: empareja la tabla consigo misma para que una fila más antigua pueda compararse con una más nueva
SELECT r1.asset_id, ____ AS ratio
FROM real_estate AS r1
JOIN real_estate AS r2 ON ____
-- Mantén solo los pares que están lo suficientemente separados en el tiempo
WHERE JULIANDAY(r2.date) - JULIANDAY(r1.date) > ____
-- Una fila de resultado por grupo, manteniendo solo la comparación más grande
GROUP BY r1.asset_id
) AS actual
JOIN potential ON ____
WHERE ratio_forecast > 1
ORDER BY ____Todas las lecciones de Fundamentos
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 ContractorPractica por tu cuenta: Playground de SQL