คำนวณเวลาเดินทางถึงเป็นนาที
ในฐานะนักพัฒนาที่ขับเคลื่อนด้วยข้อมูล บางครั้งจำเป็นต้องนำเสนอข้อมูลให้ผู้ใช้เข้าถึงได้ง่ายขึ้น
ตาราง train_schedule เก็บข้อมูลเวลาถึงและชื่อสถานีของรถไฟสองสาย โดยอ้างอิงจากข้อมูลของสายรถไฟชานเมืองที่วิ่งระหว่างซานฟรานซิสโกกับเมืองทางตอนใต้
คุณเป็นส่วนหนึ่งของทีมพัฒนาแอปเพื่อช่วยให้ผู้โดยสารใช้ตารางเดินรถได้สะดวกยิ่งขึ้น หนึ่งในฟีเจอร์ที่ผู้ใช้ขอคือตัวเลือกที่แสดงให้เห็นในชั่วพริบตาว่าใช้เวลาเดินทางจากสถานีแรกไปยังสถานีถัดๆ ไปนานเท่าใด
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน PostgreSQL
คำแนะนำการฝึกหัด
- ใน common table expression ให้ดึงค่า
arrival_timeแรกของรถไฟแต่ละสาย ซึ่งตรงกับเวลาถึงของสถานีแรกบนสายนั้น - ใช้
EXTRACT()คำนวณความต่างของเวลาถึงของแต่ละสถานีเทียบกับสถานีแรกบนสาย โดยแสดงผลเป็นจำนวนเต็มนาที
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Get first arrival time for each line
WITH start_times AS
(
SELECT train_id, ___ AS start_time
FROM train_schedule
___
)
SELECT
train_id,
station,
arrival_time,
-- Relative time difference from first station in minutes
(___(___ (___)))
___ AS total_minutes
FROM train_schedule JOIN start_times USING(train_id)
ORDER BY train_id, arrival_time;