เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง

เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา

เริ่มแบบฝึกหัด