11. Aggregate Function คืออะไร แล้วมีอะไรบ้าง

สำหรับบทนี้เราจะมาพูดถึง Aggregate Function กันนะคะ ซึ่งถ้าแปลตรงตัวเลยก็คือฟังก์ชั่นการรวมนั่นเอง เป็นฟังก์ชั่นที่ไว้ใช้กับข้อมูลที่เป็นตัวเลขค่ะ โดยคำสั่งก็จะมี COUNT AVG SUM MIN MAX ซึ่งคำสั่งเหล่านี้เวลาเราใส่จะต้องใส่หลัง SELECT เท่านั้นค่ะ ว่าแล้วก็ไปดูแต่ละตัวเลยดีกว่าว่าใช้งานอย่างไร

1. COUNT 

สำหรับคำสั่งนี้เราจะใช้สำหรับนับจำนวนค่ะ เช่นเราอยากรู้ว่าจำนวนลูกค้าในเมืองนี้มีกี่คน เราก็จะมาใช้คำสั่งนี้กัน อย่างเช่นถ้าเราอยากรู้จำนวนลูกค้าของเราที่อาศัยอยู่ใน London กี่คน เราก็จะใช้คำสั่งว่า

SELECT COUNT (FirstName)

FROM customers

WHERE City = "London"

จากนั้นลองกดรันดูค่ะ ถ้ารันถูก โปรแกรมจะแสดงขึ้นมาแบบนี้ 


คำถาม : แต่บทก่อนๆไม่ได้ใส่ COUNT ก็สามารถนับจำนวนลูกค้าได้เหมือนกันไม่ใช่เหรอ

คำตอบ : ถ้าไม่ใส่ COUNT เช่นว่าเราใส่โค้ดแบบนี้

SELECT (FirstName)

FROM customers

WHERE City = "London"

โปรแกรมจะแสดงออกมาเป็นชื่อของลูกค้าแต่ละคนที่อาศัยอยู่ในเมือง Londonค่ะ ซึ่งทำให้เราต้องมานับจำนวนลูกค้าเอง ถามว่าทำได้มั้ย ทำได้ แต่จะลำบากในกรณีที่เรามีฐานข้อมูลลูกค้าเยอะๆ สมมตเรามีลูกค้าเป็นพันๆคนที่อยู่ London เราก็จะต้องมาไล่นับอีกว่ามีกี่คน แต่การใช้ Count เหมือนสั่งให้โปรแกรมคำนวณจำนวนลูกค้ามาให้เราแบบเสร็จสรรพเลย ซึ่งสะดวกกว่าค่ะ

2. AVG 

คำสั่งนี้มาจากคำว่า Average ค่ะ ซึ่งถ้าแปลตามตัวเลยก็คือการหาค่าเฉลี่ยนั่นเอง จากที่เรากล่าวไว้ข้างต้นว่าคำสั่งพวก Aggregate นั้นจะต้องไว้หลัง SELECT เท่านั้น เพราะงั้นเรามาลองดูโจทย์แล้วใส่โค้ดกันเลยดีกว่าค่ะ

ขออนุญาตยกตัวอย่างจากคลิปที่เราดูมาเลยละกันนะคะ โจทย์ว่า 


"ถ้าสมมติเราต้องการหาค่าเฉลี่ยของใบเสร็จทั้งหมดในร้าน จะต้องใส่โค้ดยังไง"


ว่าแล้วก็ขอลองเลยค่ะ อันดับแรกเราก็ต้องมาดูก่อนว่าโจทย์ถามอะไร จากโจทย์ที่ถามหาค่าเฉลี่ยนของใบเสร็จ เพราะงั้นถ้าเราสังเกตจะพบว่าเราไม่สามารถใช้ Table ของ customers ได้แล้ว เพราะงั้นเราต้องเปลี่ยนค่ะ ซึ่งถ้าไปไล่ดู Table แต่ละอันจะเห็นว่า Total ของใบเสร็จจะอยู่ใน Table ของ Invoice นั่นเอง(ขออนุญาตเปลี่ยนสีซักนิดนะคะ หาโทนสีไม่เจอ 5555)

SELECT avg (total)

FROM invoices

แค่นี้เองค่ะ เราก็จะได้ค่าเฉลี่ยออมาตามภาพเลย


3. SUM

ส่วนคำสั่งนี้ น่าจะคุ้นเคยกันดี ใช่ค่ะ มันคือการหาผลรวมนั่นเอง ถ้ายกตัวอย่างจากโจทย์ข้างบน ให้เปลี่ยนจากหาค่าเฉลี่ยใบเสร็จ เป็นหาผมรวมของใบเสร็จทั้งหมด เราก็แค่เปลี่ยนโค้ดนิดหน่อยค่ะ โดยเปลี่ยนจาก AVG เป็น SUM แค่นั้นเอง

SELECT sum (total)

FROM invoices

เมื่อใส่แล้วก็จะได้ค่าเป็น 2328.6 นั่นเองค่ะ ซึ่งก็คือผลรวมของใบเสร็จทั้งหมดนั่นเอง


4. MIN

ความหมายตรงตัวไปเลยค่ะ ซึ่งนั่นก็คือค่าต่ำสุดนั่นเอง เช่นถ้าเราอยากจะทราบราคาที่ต่ำที่สุด เราก็แค่เปลี่ยนจาก AVG หรือ SUM หรือ Count เป็น MIN เช่น 

SELECT min (total)

FROM invoices


แค่นี้เองค่ะ


5. MAX

ตรงข้ามกับข้อ 4 ตัวนี้จะเป็นคำสั่งไว้ใช้หาค่าสูงสุดค่ะ วิธีใส่โค้ดก็ง่ายมาก ใส่หลัง Select อย่างเดิมเลยค่ะ



ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

5. การใช้คำสั่ง As เพื่อเปลี่ยนชื่อ Field หรือ Column

4.การใช้คำสั่ง SELECT พื้นฐานในการแสดงผลข้อมูลทั้งหมดหรือบางส่วน