พฤติกรรมเสี่ยงในการจอดรถ
ตาราง parking_violation มีรายละเอียดการฝ่าฝืนกฎจอดรถจำนวนมาก แต่ยังไม่ชัดเจนว่าอะไรเป็นสาเหตุที่ทำให้แต่ละคนฝ่าฝืนข้อจำกัดการจอดรถ สมมติฐานหนึ่งคือผู้ฝ่าฝืนพยายามจอดในพื้นที่ต้องห้ามก่อนที่ข้อจำกัดจะสิ้นสุดเพียงเล็กน้อย คุณได้รับมอบหมายให้ตรวจสอบปรากฏการณ์นี้ โดยต้องเผชิญกับข้อเท็จจริงที่ว่าเวลาในตาราง parking_violation ถูกเก็บไว้ในรูปแบบสตริง
ในแบบฝึกหัดนี้ คุณจะแปลง violation_time และ to_hours_in_effect เป็นค่า TIMESTAMP สำหรับการฝ่าฝืนที่เกิดขึ้นในพื้นที่ที่มีข้อจำกัดบางช่วงของวัน จากนั้นคำนวณช่วงเวลาระหว่าง violation_time และ to_hours_in_effect สำหรับระเบียนเหล่านั้น และระบุระเบียนที่ violation_time อยู่ห่างจาก to_hours_in_effect น้อยกว่า 1 ชั่วโมง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลในฐานข้อมูล PostgreSQL
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
summons_number,
-- Convert violation_time to a TIMESTAMP
___(___, 'HH12MIPM')::TIME as violation_time,
-- Convert to_hours_in_effect to a TIMESTAMP
___(___, 'HH12MIPM')::TIME as to_hours_in_effect
FROM
parking_violation
WHERE
-- Exclude all day parking restrictions
NOT (___ = '1200AM' AND ___ = '1159PM');