Menggunakan FILTER untuk membuat tabel pivot
Pada latihan sebelumnya, Anda menulis kueri yang memberikan informasi tentang jumlah pelanggaran parkir (berdasarkan kode numeriknya) yang diterbitkan oleh masing-masing dari empat instansi. Hasilnya memuat semua informasi yang diinginkan tetapi disajikan dalam format yang menampilkan duplikasi setiap violation_code hingga empat kali (untuk setiap issuing_agency yang dipilih) dalam hasil. Representasi yang lebih ringkas dari data yang sama dapat dicapai melalui pembuatan tabel pivot.
Dalam latihan ini, Anda akan menulis kueri menggunakan klausa FILTER untuk menghasilkan hasil dalam format tabel pivot. Penyajian data yang lebih baik ini akan lebih mudah digunakan dalam laporan pelanggaran parkir yang diterbitkan oleh masing-masing dari empat instansi yang diminati.
Latihan ini merupakan bagian dari kursus
Membersihkan Data di Database PostgreSQL
Instruksi latihan
- Definisikan kolom
Policesebagai jumlah record untuk setiapviolation_codedengan nilaiissuing_agencyP. - Definisikan kolom
Sanitationsebagai jumlah record untuk setiapviolation_codedengan nilaiissuing_agencyS. - Definisikan kolom
Parkssebagai jumlah record untuk setiapviolation_codedengan nilaiissuing_agencyK. - Definisikan kolom
Transportationsebagai jumlah record untuk setiapviolation_codedengan nilaiissuing_agencyV.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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