SQL โดยสรุป (2)
อีกหนึ่งงานที่พบบ่อยในฐานข้อมูลคือการรวมข้อมูล (aggregation) นั่นคือการย่อข้อมูลโดยแบ่งออกเป็นกลุ่มแล้วสรุปแต่ละกลุ่ม
ใน SQL ทำสิ่งนี้ได้ด้วยคำสั่ง GROUP BY ซึ่งจะแบ่งข้อมูลออกเป็นกลุ่ม แล้วนำฟังก์ชันจากคำสั่ง SELECT ไปใช้กับแต่ละกลุ่ม
ตัวอย่างเช่น หากต้องการนับจำนวนเที่ยวบินจากต้นทาง 2 แห่ง สามารถใช้คิวรีได้ดังนี้
SELECT COUNT(*) FROM flights
GROUP BY origin;
GROUP BY origin บอก SQL ว่าต้องการให้ผลลัพธ์มีแถวสำหรับค่าที่ไม่ซ้ำกันแต่ละค่าในคอลัมน์ origin ส่วนคำสั่ง SELECT ระบุค่าที่ต้องการแสดงในแต่ละคอลัมน์ ในที่นี้คือการ COUNT() ทุกแถวในแต่ละกลุ่ม
สามารถใช้ GROUP BY กับมากกว่าหนึ่งคอลัมน์ได้ เมื่อทำแบบนี้ ตารางผลลัพธ์จะมีแถวสำหรับทุกการผสมผสานของค่าที่ไม่ซ้ำกันในแต่ละคอลัมน์ คิวรีด้านล่างนับจำนวนเที่ยวบินจาก SEA และ PDX ไปยังสนามบินปลายทางทุกแห่ง
SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;
ผลลัพธ์จะมีแถวสำหรับทุกการผสมผสานของค่าใน origin และ dest (กล่าวคือ แถวที่แสดงต้นทางและปลายทางของแต่ละเที่ยวบิน) พร้อมคอลัมน์ที่แสดง COUNT() ของแถวทั้งหมดในแต่ละกลุ่ม
สามารถศึกษา SQL เพิ่มเติมได้ที่นี่
คิวรีด้านล่างนี้จะดึงข้อมูลอะไร? จำไว้ว่าตาราง flights เก็บข้อมูลเที่ยวบินที่ออกจาก PDX และ SEA ในปี 2014 และ 2015 และฟังก์ชัน AVG() จะคำนวณค่าเฉลี่ยของคอลัมน์
SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
พื้นฐาน PySpark
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง
เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา
เริ่มแบบฝึกหัด