Zacznij terazZacznij za darmo

Tworzenie tabeli przestawnej za pomocą FILTER

W poprzednim ćwiczeniu napisano zapytanie zwracające informacje o liczbie naruszeń przepisów parkingowych (według ich kodów numerycznych) wystawionych przez każdą z czterech agencji. Wyniki zawierały wszystkie potrzebne dane, jednak były przedstawione w formacie, w którym każdy violation_code mógł pojawiać się nawet czterokrotnie – po jednym razie dla każdej z wybranych wartości issuing_agency. Bardziej zwartą reprezentację tych samych danych można uzyskać, tworząc tabelę przestawną.

W tym ćwiczeniu napiszesz zapytanie wykorzystujące klauzulę FILTER, aby uzyskać wyniki w formacie tabeli przestawnej. Takie przejrzyste przedstawienie danych ułatwi przygotowanie raportu dotyczącego naruszeń przepisów parkingowych wystawionych przez każdą z czterech interesujących nas agencji.

To ćwiczenie jest częścią kursu

Czyszczenie danych w bazach PostgreSQL

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj kolumnę Police jako liczbę rekordów dla każdego violation_code z wartością issuing_agency równą P.
  • Zdefiniuj kolumnę Sanitation jako liczbę rekordów dla każdego violation_code z wartością issuing_agency równą S.
  • Zdefiniuj kolumnę Parks jako liczbę rekordów dla każdego violation_code z wartością issuing_agency równą K.
  • Zdefiniuj kolumnę Transportation jako liczbę rekordów dla każdego violation_code z wartością issuing_agency równą V.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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
Edytuj i uruchom kod