Clasificar multas de estacionamiento por momento del día
Han surgido dudas sobre si las multas de estacionamiento se emiten de forma uniforme a lo largo del día. Te han pedido que asocies cada multa con el momento del día en que se emitió. Decides que lo más sencillo es crear una nueva columna llamada morning. Este campo se rellenará con el (entero) 1 si la multa se emitió por la mañana (entre las 12:00 AM y las 11:59 AM) y con el (entero) 0 en caso contrario. La hora de emisión está registrada en la columna violation_time de la tabla parking_violation. Esta columna consta de 4 dígitos seguidos de una A (de AM) o una P (de PM).
En este ejercicio, rellenarás la columna morning haciendo coincidir patrones para los violation_time que ocurren por la mañana.
Este ejercicio forma parte del curso
Limpieza de datos en bases de datos PostgreSQL
Instrucciones del ejercicio
- Usa el patrón de expresión regular
'\d\d\d\dA'en la subconsulta para hacer coincidir valores deviolation_timeque consisten en 4 dígitos consecutivos (\d) seguidos de unaAmayúscula. - Edita la cláusula
CASEpara rellenar la columnamorningcon1(entero sin comillas) cuando la expresión regular coincida. - Edita la cláusula
CASEpara rellenar la columnamorningcon0(entero sin comillas) cuando la expresión regular no coincida.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
SELECT
summons_number,
CASE WHEN
summons_number IN (
SELECT
summons_number
FROM
parking_violation
WHERE
-- Match violation_time for morning values
___ SIMILAR TO ___
)
-- Value when pattern matched
THEN ___
-- Value when pattern not matched
ELSE ___
END AS morning
FROM
parking_violation;