วิเคราะห์ความยาวของแทร็ก
ในบทที่ผ่านมา คุณใช้ subquery เพื่อหาความยาวเฉลี่ยของเพลงในหน่วยมิลลิวินาทีสำหรับแต่ละแนวเพลง คราวนี้จะทำสิ่งที่คล้ายกัน แต่ใช้ common table expression แทน พร้อมเพิ่มความละเอียดในการวิเคราะห์มากขึ้น มาเริ่มกันเลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลใน Snowflake
คำแนะนำการฝึกหัด
- เขียน common table expression ชื่อ
track_lengthsเพื่อดึงฟิลด์nameจากstore.genreรวมถึงgenre_idและmillisecondsจากตารางstore.track - คำนวณค่าเฉลี่ยของ
track_lengthในหน่วยวินาทีสำหรับแต่ละแนวเพลง โดยใช้ common table expression ชื่อtrack_lengths - เรียงลำดับผลลัพธ์ตามความยาวเฉลี่ยของแทร็ก จากมากไปน้อย
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Create a CTE named track_lengths
___ ___ ___ (
SELECT
genre.name,
track.genre_id,
track.milliseconds / 1000 AS num_seconds
FROM store.track
JOIN store.genre ON track.genre_id = genre.genre_id
)
SELECT
track_lengths.name,
-- Find the average length of each track in seconds
___(___.___) AS avg_track_length
FROM ___
GROUP BY track_lengths.name
-- Sort the results by average track_length
___;