Vytvoření kontingenční tabulky pomocí FILTER
V předchozím cvičení jsi napsal/a dotaz, který zobrazoval počty parkovacích přestupků (podle jejich číselného kódu) vydaných každou ze čtyř agentur. Výsledky obsahovaly všechny potřebné informace, ale byly prezentovány ve formátu, kde se každý violation_code opakoval až čtyřikrát (pro každou vybranou issuing_agency). Kompaktnější reprezentaci stejných dat lze dosáhnout vytvořením kontingenční tabulky.
V tomto cvičení napíšeš dotaz s využitím klauzule FILTER, který vrátí výsledky ve formátu kontingenční tabulky. Toto přehlednější zobrazení dat pak snadno využiješ v přehledu parkovacích přestupků vydaných každou ze čtyř sledovaných agentur.
Toto cvičení je součástí kurzu
Cleaning Data in PostgreSQL Databases
Pokyny k cvičení
- Definuj sloupec
Policejako počet záznamů pro každýviolation_codes hodnotouissuing_agencyrovnouP. - Definuj sloupec
Sanitationjako počet záznamů pro každýviolation_codes hodnotouissuing_agencyrovnouS. - Definuj sloupec
Parksjako počet záznamů pro každýviolation_codes hodnotouissuing_agencyrovnouK. - Definuj sloupec
Transportationjako počet záznamů pro každýviolation_codes hodnotouissuing_agencyrovnouV.
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
violation_code,
-- Define the "Police" column
COUNT(issuing_agency) FILTER (WHERE issuing_agency = '___') AS "Police",
-- Define the "Sanitation" column
COUNT(___) FILTER (WHERE ___ = '___') AS "___",
-- Define the "Parks" column
___(___) ___ (WHERE ___ = '___') AS "___",
-- Define the "Transportation" column
___(___) ___ (___ ___ = '___') AS "___"
FROM
parking_violation
GROUP BY
violation_code
ORDER BY
violation_code