Bắt đầu ngayBắt đầu miễn phí

Dùng FILTER để tạo bảng pivot

Ở bài tập trước, bạn đã viết một truy vấn cung cấp số lượng vé phạt đỗ xe (theo mã số của chúng) do từng cơ quan trong bốn cơ quan phát hành. Kết quả chứa đầy đủ thông tin cần thiết nhưng được trình bày theo định dạng lặp lại mỗi violation_code tối đa bốn lần (ứng với mỗi issuing_agency được chọn). Một cách biểu diễn gọn hơn cho cùng dữ liệu là tạo một bảng pivot.

Trong bài này, bạn sẽ viết truy vấn dùng mệnh đề FILTER để tạo kết quả theo định dạng bảng pivot. Cách trình bày cải tiến này giúp bạn dễ đưa dữ liệu vào báo cáo về vé phạt đỗ xe do bốn cơ quan quan tâm phát hành.

Bài tập này là một phần của khóa học

Làm sạch dữ liệu trong cơ sở dữ liệu PostgreSQL

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa cột Police là số bản ghi cho mỗi violation_codeissuing_agency bằng P.
  • Định nghĩa cột Sanitation là số bản ghi cho mỗi violation_codeissuing_agency bằng S.
  • Định nghĩa cột Parks là số bản ghi cho mỗi violation_codeissuing_agency bằng K.
  • Định nghĩa cột Transportation là số bản ghi cho mỗi violation_codeissuing_agency bằng V.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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
Chỉnh sửa và Chạy Mã