Grupowanie i przekodowywanie wartości
Tabela evanston311.category zawiera prawie 150 różnych wartości. Niektóre kategorie są jednak podobne i mają postać „Kategoria główna – Szczegóły". Żeby lepiej zorientować się, jakie zgłoszenia są najczęstsze, warto zagregować dane według kategorii głównej.
W tym celu utwórz tymczasową tabelę recode, która przypisze każdej unikalnej wartości category nową, standardized (ustandaryzowaną) wartość. Jako wartości standardized użyj części nazwy kategorii znajdującej się przed myślnikiem ('-'). Wyodrębnisz ją za pomocą funkcji split_part():
split_part(string text, delimiter text, field int)
Konieczne będzie też dodatkowe porządkowanie kilku przypadków, które nie pasują do tego wzorca.
Następnie połącz tabelę evanston311 z tabelą recode, aby pogrupować zgłoszenia według nowych, ustandaryzowanych wartości kategorii.
To ćwiczenie jest częścią kursu
Eksploracyjna analiza danych w SQL
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- Fill in the command below with the name of the temp table
DROP TABLE IF EXISTS ___;
-- Create and name the temporary table
CREATE ___ ___ ___ AS
-- Write the select query to generate the table with distinct values of category and standardized values
SELECT DISTINCT category,
___(___(___, ___, ___)) AS standardized
-- What table are you selecting the above values from?
FROM ___;
-- Look at a few values before the next step
SELECT DISTINCT standardized
FROM recode
WHERE standardized LIKE 'Trash%Cart'
OR standardized LIKE 'Snow%Removal%';