Repaso: contratista inmobiliario
Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 51 de 72.
Desafío
IntermedioTablas y columnas disponibles:
real_estate:asset_id,value,datepotential:asset_id,forecast
Algunos analistas pronostican cuál será el crecimiento de los activos inmobiliarios. Queremos comprobar si su pronóstico es verdadero.
Para cada activo de 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 era 5 el 2022-01-01 y 10 el 2022-05-01, después esa proporción es 10/5 = 2.
Ignora todas las comparaciones cuya diferencia en días entre las dos fechas sea menor que 101.
Hay muchas fechas para cada activo, por lo que hay muchas proporciones que comparar. Conserva solo la proporción más grande para cada activo.
Finalmente, divide esta proporción entre 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 contener asset_id y ratio_forecast.
Conserva solo los activos cuyo ratio_forecast sea mayor que 1.
Nota: Para obtener un resultado decimal de la operación de división (/), a veces necesitas multiplicar el numerador por 1.0.
Por ejemplo, en lugar de a / b, usa 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 reciente
SELECT r1.asset_id, ____ AS ratio
FROM real_estate AS r1
JOIN real_estate AS r2 ON ____
-- Conserva 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, conservando solo la única 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
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de celulares2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados, parte 1Ordenar resultados, parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL