Klasifikace parkovacích přestupků podle denní doby
Objevily se obavy, že parkovací přestupky nejsou vystavovány rovnoměrně v průběhu celého dne. Tvým úkolem je přiřadit každý přestupek k denní době jeho vystavení. Rozhodneš se, že nejjednodušším řešením bude vytvořit nový sloupec morning. Tento sloupec bude obsahovat (celé číslo) 1, pokud byl přestupek vystavený dopoledne (mezi 0:00 a 11:59), nebo (celé číslo) 0 v ostatních případech. Čas vystavení je uložen ve sloupci violation_time tabulky parking_violation. Tento sloupec obsahuje 4 číslice následované písmenem A (pro AM) nebo P (pro PM).
V tomto cvičení naplníš sloupec morning tak, že budeš hledat vzory odpovídající dopoledním hodnotám violation_time.
Toto cvičení je součástí kurzu
Cleaning Data in PostgreSQL Databases
Pokyny k cvičení
- V poddotazu použij vzor regulárního výrazu
'\d\d\d\dA'pro vyhledání hodnotviolation_timetvořených 4 po sobě jdoucími číslicemi (\d) následovanými velkým písmenemA. - Uprav klauzuli
CASEtak, aby se do sloupcemorningzapsala hodnota1(celé číslo bez uvozovek) v případě shody s regulárním výrazem. - Uprav klauzuli
CASEtak, aby se do sloupcemorningzapsala hodnota0(celé číslo bez uvozovek) v případě, že regulární výraz nenajde shodu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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;