เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การใช้ FILTER เพื่อสร้าง pivot table

ในแบบฝึกหัดก่อนหน้า คุณเขียนคิวรีที่แสดงข้อมูลจำนวนการละเมิดกฎจอดรถ (ตามรหัสตัวเลข) ที่ออกโดยหน่วยงานทั้งสี่แห่ง ผลลัพธ์มีข้อมูลครบถ้วน แต่การนำเสนออาจซ้ำซ้อน เนื่องจาก violation_code แต่ละรหัสอาจปรากฏซ้ำได้ถึงสี่ครั้ง (ตามจำนวน issuing_agency ที่เลือก) การแสดงข้อมูลชุดเดียวกันในรูปแบบที่กระชับกว่านั้นทำได้ด้วยการสร้าง pivot table

ในแบบฝึกหัดนี้ จะได้เขียนคิวรีโดยใช้ clause FILTER เพื่อให้ผลลัพธ์อยู่ในรูปแบบ pivot table การนำเสนอข้อมูลในรูปแบบนี้ช่วยให้รายงานการละเมิดกฎจอดรถของหน่วยงานทั้งสี่แห่งอ่านและใช้งานได้ง่ายขึ้น

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การทำความสะอาดข้อมูลในฐานข้อมูล PostgreSQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดคอลัมน์ Police เป็นจำนวนระเบียนของแต่ละ violation_code ที่มีค่า issuing_agency เป็น P
  • กำหนดคอลัมน์ Sanitation เป็นจำนวนระเบียนของแต่ละ violation_code ที่มีค่า issuing_agency เป็น S
  • กำหนดคอลัมน์ Parks เป็นจำนวนระเบียนของแต่ละ violation_code ที่มีค่า issuing_agency เป็น K
  • กำหนดคอลัมน์ Transportation เป็นจำนวนระเบียนของแต่ละ violation_code ที่มีค่า issuing_agency เป็น V

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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
แก้ไขและรันโค้ด