6.1 รายการฟังก์ชันรวม
เมื่อคุณใช้การจัดกลุ่มแถวใน SQL ด้วยตัวดำเนินการGROUP BYคุณสามารถใช้SELECTฟังก์ชันในคำสั่งที่ดำเนินการกับข้อมูลที่จัดกลุ่มได้ ฟังก์ชันดังกล่าวเรียกอีกอย่างว่าฟังก์ชันรวม
นี่คือรายการที่ได้รับความนิยมสูงสุด:
| # | การทำงาน | คำอธิบาย |
|---|---|---|
| 1 | นับ() | ส่งกลับจำนวนของค่าในกลุ่ม |
| 2 | ผลรวม() | ส่งกลับผลรวมของค่าในกลุ่ม |
| 3 | สูงสุด() | ส่งกลับค่าสูงสุดของกลุ่ม |
| 4 | นาที() | ส่งกลับค่าต่ำสุดของกลุ่ม |
| 5 | เฉลี่ย () | ส่งกลับค่าเฉลี่ยของกลุ่ม |
| 6 | BIT_AND() | ดำเนินการในระดับบิตและเหนือค่ากลุ่มทั้งหมด |
| 7 | BIT_OR() | ดำเนินการในระดับบิตหรือมากกว่าค่ากลุ่มทั้งหมด |
| 8 | BIT_XOR() | ดำเนินการ XOR ระดับบิตกับค่ากลุ่มทั้งหมด |
| 9 | GROUP_CONCAT() | เชื่อมโยงค่ากลุ่มทั้งหมดเป็นสตริงเดียว |
ทีนี้มาดูตัวอย่างบางส่วนที่มีฟังก์ชันรวมของเรา
6.2 วิเคราะห์เงินเดือนพนักงาน
ลองคำนวณสถิติเกี่ยวกับพนักงานของเราจากตารางพนักงาน
คำถามที่หนึ่ง: เรามีพนักงานกี่คน?
หากเราต้องการทราบจำนวนระเบียนทั้งหมดในตาราง เราสามารถใช้ฟังก์ชันการรวมสำหรับสิ่งCOUNTนี้ คำขอจะมีลักษณะดังนี้:
SELECT COUNT(*) FROM employee
และ MySQL จะส่งกลับหมายเลข 6 เป็นคำตอบ เรามีพนักงาน 6 คนในแผนก รวมทั้งแมวด้วย เอาล่ะ.
คำถามที่สองเราจ่ายเงินให้พนักงานทุกคนเดือนละเท่าไหร่?
ในการตอบคำถามนี้ เราจำเป็นต้องรวมเงินเดือนของพนักงานทั้งหมด ในการทำเช่นนี้ เราใช้ฟังก์ชันการรวมSUM()
คำขอจะมีลักษณะดังนี้:
SELECT SUM(salary) FROM employee
โปรดทราบว่าเวลานี้เราต้องระบุค่าของคอลัมน์ที่เรากำลังสรุป เราได้ระบุคอลัมน์เงินเดือน เราไม่สามารถรวมเขตข้อมูลทั้งหมดในตารางได้
และ MySQL จะส่งคืนหมายเลข 461,000 เป็นคำตอบ เรามีพนักงาน 6 คนในแผนกและเงินเดือน 461,000 มากเกินไป.
และสุดท้าย คำถามที่สาม: เงินเดือนสูงสุดและต่ำสุดของเราในแผนกคือเท่าไหร่? เรามาคำนวณเงินเดือนเฉลี่ยกัน ในการทำ เช่นนี้เราจำเป็นต้องมีฟังก์ชันMINและMAXAVG
แบบสอบถามจะซับซ้อนขึ้นเล็กน้อยในครั้งนี้และมีลักษณะดังนี้:
SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee
ผลลัพธ์ของแบบสอบถามนี้จะเป็น:
| นาที (เงินเดือน) | AVG (เงินเดือน) | MAX (เงินเดือน) |
|---|---|---|
| 1,000 | 76833.3333 | 200,000 |
ค่าจ้างขั้นต่ำในแผนกของเราคือ 1,000 ดอลลาร์ – ดีมาก เงินเดือนสูงสุดคือ 200,000 แต่นี่คือผู้อำนวยการ
แต่เงินเดือนเฉลี่ยสูงเกินไป คุณต้องปรับต้นทุนให้เหมาะสม มาจ้างแมวตัวอื่นกันเถอะ :)
GO TO FULL VERSION