การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ CHARPTER 6 การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ กลุ่มข้อมูล
สาระการเรียนรู้ 1. เพื่อศึกษาถึงวิธีการเขียนฟังก์ชั่นทางคณิตศาสตร์ในการคำนวณ แบบ กลุ่ม 2. เพื่อศึกษาการใช้ฟังก์ชั่น AVG, SUM, MIN, MAX, COUNT เลือกกลุ่มข้อมูลแบบมีเงื่อนไขโดยใช้ Having
การแสดงผลและคำนวณค่าที่ได้ คำนวณแต่ละค่าที่ได้ อธิบายฟังก์ชั่นที่ใช้หาค่าของกลุ่มข้อมูลที่ได้ เช่น ค่าเฉลี่ย ผลบวก ค่าสูงสุด ค่าต่ำสุด และการนับจำนวนข้อมูลดังแสดงในตาราง
เลือกกลุ่มข้อมูลโดยใช้ HAVING โดยปกติถ้าใช้คำสั่ง Group By จะแสดงผลได้ครั้งละ 1 แถว ซึ่งหากต้อง การสอบถามข้อมูลแบบกลุ่มจำเป็นต้องใช้คำสั่ง Having ซึ่งคำสั่ง Having จะใช้ สำหรับสอบถามข้อมูลแบบมีเงื่อนไข การคำนวณแต่ไม่สามารถกำหนดในส่วนของ Where ได้ดังนั้นต้องกำหนดไว้ในส่วนของ Having
เลือกกลุ่มข้อมูลโดยใช้ HAVING รูปแบบคำสั่ง HAVING ฟังก์ชั่นสามารถทำได้ตามรูปแบบคำสั่ง SQL SELECT column1[,column2, …] FROM table-name GROUP BY group1[,group2, ..] HAVING group_condition;
เลือกกลุ่มข้อมูลโดยใช้ HAVING SELECT column เลือกคอลัมน์ที่ต้องการแสดง FROM table-name ชื่อตารางซึ่งเก็บข้อมูลที่เราต้องการคิวรี GROUP BY group1 แบ่งข้อมูลออกเป็นกลุ่มตามคอลัมน์ที่กำหนดในส่วน Group by HAVING ประโยค HAVING ใช้ในการกำหนดเงื่อนไข ซึ่งจะ มีการเลือกเฉพาะกลุ่มข้อมูลที่ตรงกับเงื่อนไขขึ้นมา แสดงเท่านั้น Group_condition เงื่อนไขที่ต้องการกำหนด โดยสามารถใช้โอเปอเร เตอร์ต่างๆ ได้เช่นเดียวกับเงื่อนไขที่กำหนดในส่วน where
เลือกกลุ่มข้อมูลโดยใช้ HAVING ตัวอย่าง จงทำการสอบถามข้อมูลจาก Database School โดยใช้คำสั่ง Having เพื่อ สอบถามข้อมูลรายวิชาที่มีนักศึกษาเรียนทั้งหมดในกลุ่มจาก ตาราง student_subject select subjectid, count(*) from teacher group by subjectid having count(*)>=2; ผลลัพธ์
คำสั่งฟังก์ชั่น SQL (Function) SELECT function (column-name or *) FROM <table-name>;
การคำนวณหาผลรวมด้วย SUM ตัวอย่างที่ 6 จงทำการสอบถามข้อมูลจาก Database School โดยหาผลรวมจากคะแนนที่นักศึกษาแต่ละคนสอบได้ SELECT sum(score) as ผลรวมคะแนน FROM student_subject; ผลลัพธ์
การคำนวณหาค่าเฉลี่ยด้วย AVG ตัวอย่างที่ 6_1 จงทำการสอบถามข้อมูลจาก Database School โดยหาค่าคะแนน เฉลี่ยจาก คะแนนที่นักศึกษาสอบโดยเลือกจาก table Student_Subject SELECT AVG(score) as ค่าเฉลี่ยคะแนน from student_subject; ผลลัพธ์
การคำนวณการนับจำนวนข้อมูลด้วย COUNT() ตัวอย่างที่ 6_2 จงทำการสอบถามข้อมูลจาก Database School ว่ามีจำนวนอาจารย์กี่คนในตาราง Teacher SELECT count(*) as จำนวนอาจารย์ from teacher; ผลลัพธ์
การคำนวณหาค่าสูงสุดด้วย MAX() ตัวอย่างที่ 6_3 จงทำการสอบถามข้อมูลจากDatabase School โดยหาคะแนนสูงสุด ที่นักศึกษาสอบได้จากตาราง student_subject SELECT Max(score) AS ค่าสูงสุด FROM student_subject; ผลลัพธ์
การคำนวณหาค่าสูงสุดด้วย MIN() ตัวอย่างที่ 6_4 จงทำการสอบถามข้อมูลจากDatabase School โดยหาคะแนนน้อยที่สุด ที่นักศึกษาสอบได้จากตาราง student_subject SELECT Min(score) AS ค่าที่น้อยที่สุด FROM student_subject; ผลลัพธ์
การคำนวณการนับจำนวนข้อมูลด้วย COUNT() & DISTINCT ตัวอย่าง 6_5 จงทำการสอบถามข้อมูลจาก Database School แสดงจำนวนนักศึกษาทั้ง หมด พร้อมทั้งระบุ รหัสนักศึกษา และ รหัสนักศึกษา ที่ไม่ซ้ำกันทั้งหมดที่นักศึกษา ได้ทำการสอบ จากตาราง Student_Subject SELECT count(*) AS Total, count(distinct studentid) AS รหัสนักศึกษา, count(distinct subjectid) AS รหัสวิชา FROM student_subject; ผลลัพธ์ Total รหัสนักศึกษา รหัสวิชา
การใช้ฟังก์ชั่น ร่วมกับประโยคคำสั่งย่อย WHERE ตัวอย่าง6_6 จงทำการสอบถามข้อมูลจาก Database School โดยอยากคะแนนเฉลี่ย เฉพาะรหัสวิชา I001 SELECT avg(score) as ค่าเฉลี่ยเฉพาะวิชา FROM student_subject where subjectid = 'I001'; ผลลัพธ์
**แบบทดสอบท้ายบทเรียน ** Exam 6_1 จงทำการสอบถามข้อมูลจาก Database School โดยอยากทราบคะแนน ทั้งหมด, คะแนนเฉลี่ย, คะแนนสูงสุด, คะแนนต่ำสุด ทั้งหมดของนักศึกษาพร้อมทั้ง แสดงหัวข้อให้ตรงกับข้อมูลที่ต้องการหา จากตาราง Student_Subject SELECT sum(score) as ผลรวมคะแนน, avg(score) as ค่าเฉลี่ยคะแนน, max(score) as คะแนนสูงสุด, min(score) as คะแนนน้อยที่สุด from student_subject; ผลลัพธ์
**แบบทดสอบท้ายบทเรียน ** Exam 6_2 จงทำการสอบถามข้อมูลจาก Database School โดยอยากทราบชมรมทั้งหมด ในโครงเรียนที่ไม่ซ้ำกัน SELECT club from club group by club; ผลลัพธ์
**แบบทดสอบท้ายบทเรียน ** Exam 6_3 จงทำการสอบถามข้อมูลจาก Database School โดยอยากทราบชมรมทั้งหมด ที่มีสามาชิก = 3 คน SELECT club,count(*) as จำนวน3 from club group by club having count(club)=3; ผลลัพธ์
**แบบทดสอบท้ายบทเรียน ** Exam 6_4 จงทำการสอบถามข้อมูลจาก Database School แสดงชื่องานอดิเรกและ จำนวนนักศึกษาที่มีงานอดิเรกนั้น เรียงลำดับจากมากไปหาน้อย SELECT hobby, count(hobby) from hobby group by hobby order by count(*) DESC; ผลลัพธ์
สรุปท้ายบทเรียน บทเรียนเรียนนี้เป็นการศึกษาถึงฟังก์ชั่นเชิงคณิตศาสตร์ที่ใช้สำหรับกลุ่ม หรือเซ็ตของข้อมูล เพื่อหาค่าเฉลี่ย ผลบวก ค่าสูงสุด ค่าต่ำสุด และการนับจำนวน ข้อมูล โดยใช้ฟังก์ชั่นคณิตศาสตร์ AVG, SUM, MIN, MAX และ COUNT ตลอดจน การจัดกลุ่มข้อมูลด้วย Having
THE END