Klasyfikowanie naruszeń zasad parkowania według pory dnia
Pojawiły się obawy, że mandaty za nieprawidłowe parkowanie nie są wystawiane równomiernie w ciągu dnia. Zostało ci powierzone zadanie powiązania każdego naruszenia z porą dnia, w której wystawiono mandat. Uznasz, że najprostszym rozwiązaniem jest utworzenie nowej kolumny o nazwie morning. Kolumna ta będzie przyjmować wartość (całkowitą) 1, jeśli mandat wystawiono rano (między 00:00 a 11:59), lub wartość (całkowitą) 0 w pozostałych przypadkach. Godzina wystawienia mandatu jest zapisana w kolumnie violation_time tabeli parking_violation. Kolumna ta składa się z 4 cyfr, po których następuje litera A (dla AM) lub P (dla PM).
W tym ćwiczeniu wypełnisz kolumnę morning, dopasowując wzorce dla wartości violation_time odpowiadających porannym godzinom.
To ćwiczenie jest częścią kursu
Czyszczenie danych w bazach PostgreSQL
Instrukcje do ćwiczenia
- Użyj wzorca wyrażenia regularnego
'\d\d\d\dA'w podzapytaniu, aby dopasować wartościviolation_timeskładające się z 4 kolejnych cyfr (\d) po których następuje wielka literaA. - Zmodyfikuj klauzulę
CASE, aby kolumnamorningprzyjmowała wartość1(liczba całkowita bez cudzysłowów), gdy wyrażenie regularne zostanie dopasowane. - Zmodyfikuj klauzulę
CASE, aby kolumnamorningprzyjmowała wartość0(liczba całkowita bez cudzysłowów), gdy wyrażenie regularne nie zostanie dopasowane.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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;