ความแตกต่างตามวันในสัปดาห์
ระยะเวลาที่ใช้ในการดำเนินการตามคำขอแตกต่างกันตามวันในสัปดาห์ที่สร้างคำขอหรือไม่?
เราสามารถดึงชื่อวันในสัปดาห์ได้โดยแปลง timestamp เป็นข้อมูลแบบตัวอักษร:
to_char(date_created, 'day')
อย่างไรก็ตาม ชื่อวันในสัปดาห์จะเรียงตามลำดับตัวอักษร ไม่ใช่ลำดับตามปฏิทิน หากต้องการเรียงตามลำดับวันในสัปดาห์จริง พร้อมค่าจำนวนเต็มสำหรับแต่ละวัน ให้ใช้:
EXTRACT(DOW FROM date_created)
DOW ย่อมาจาก "day of week" (วันในสัปดาห์)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Exploratory Data Analysis ใน SQL
คำแนะนำการฝึกหัด
- เลือกชื่อวันในสัปดาห์ที่สร้างคำขอ (
date_created) โดยตั้งชื่อคอลัมน์ว่าday - เลือกค่าเฉลี่ยของเวลาระหว่างวันที่ดำเนินการเสร็จสิ้น (
date_completed) กับวันที่สร้างคำขอ โดยตั้งชื่อคอลัมน์ว่าduration - จัดกลุ่มตาม
day(ชื่อวันในสัปดาห์) และค่าจำนวนเต็มของวันในสัปดาห์ (ใช้ฟังก์ชันที่เหมาะสม) - เรียงลำดับตามค่าจำนวนเต็มของวันในสัปดาห์ โดยใช้ฟังก์ชันเดียวกับที่ใช้ใน
GROUP BY
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Select name of the day of the week the request was created
SELECT ___(___, ___) AS day,
-- Select avg time between request creation and completion
___(___ - ___) AS duration
FROM evanston311
-- Group by the name of the day of the week and
-- integer value of day of week the request was created
GROUP BY day, EXTRACT(___ ___ ___)
-- Order by integer value of the day of the week
-- the request was created
ORDER BY EXTRACT(___ ___ ___);