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
SELECT sum (total)
FROM invoices
เมื่อใส่แล้วก็จะได้ค่าเป็น 2328.6 นั่นเองค่ะ ซึ่งก็คือผลรวมของใบเสร็จทั้งหมดนั่นเอง
4. MIN
SELECT min (total)
FROM invoices
แค่นี้เองค่ะ


ความคิดเห็น
แสดงความคิดเห็น