Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

SQL Aggregate Functions: คู่มือฟังก์ชันรวมข้อมูล

SQL aggregate functions ดึงข้อมูลเกี่ยวกับข้อมูลในฐานข้อมูล เช่น ใช้ COUNT หาจำนวนเรคอร์ด ฟังก์ชันที่รองรับ: COUNT, MIN, MAX, AVG, และ SUM

บางครั้งต้องการข้อมูลเกี่ยวกับข้อมูล (metadata) ไม่ใช่ข้อมูลโดยตรง เช่น ต้องการรู้ว่ามีพนักงานกี่คนในแต่ละสำนักงาน หรือใครทำงานนานที่สุด นี่คือที่มาของ SQL aggregate functions

ในคู่มือนี้ เราจะพูดถึงพื้นฐาน SQL aggregate functions การทำงาน และวิธีใช้ในคิวรี่

หมายเหตุ: เราใช้ PostgreSQL สำหรับบทความนี้

SQL Aggregate Functions

SQL aggregate functions รวบรวมข้อมูลเกี่ยวกับสิ่งที่อยู่ในฐานข้อมูล เช่น ใช้ SUM หาผลรวมค่าในคอลัมน์ Aggregate functions ประหยัดเวลาเมื่อต้องการข้อมูลที่เกี่ยวกับการรวมเรคอร์ด

รายการ aggregate functions ใน SQL ที่ใช้ได้:

  • COUNT
  • SUM
  • AVG
  • MIN
  • MAX

มาดูแต่ละฟังก์ชันอย่างละเอียด เราจะอ้างอิงฐานข้อมูลพนักงานตลอดบทช่วยสอน

Aggregate functions ใช้ที่ต้นคำสั่ง SQL SELECT

SQL COUNT

ฟังก์ชัน SQL COUNT คืนจำนวนแถวทั้งหมดที่คิวรี่คืนค่า ด้วยคำสั่ง WHERE, COUNT คืนจำนวนแถวที่ตรงเงื่อนไข

เช่น ต้องการรู้ว่ามีพนักงานกี่คนในสาขา Stamford ใช้คิวรี่:

SELECT COUNT(name) FROM employees WHERE branch = "Stamford";

ผลลัพธ์:

count
1

(1 แถว)

SQL MIN และ MAX

ฟังก์ชัน SQL MIN คืนค่าน้อยที่สุดในคอลัมน์ คำสั่ง SQL MAX คืนค่ามากที่สุดในคอลัมน์ ทั้งคู่เป็น aggregate functions

เช่น ต้องการจำนวนรางวัล "พนักงานเดือน" น้อยที่สุดที่บุคคลใดบุคคลหนึ่งครอง ใช้คิวรี่:

SELECT MIN(employee_month_awards) FROM employees;

ผลลัพธ์:

min
1

(1 แถว)

ถ้าต้องการจำนวนมากที่สุด ใช้ MAX แทน:

SELECT MAX(employee_month_awards) FROM employees;

ผลลัพธ์:

max
6

(1 แถว)

สังเกต: MIN และ MAX ใช้ได้กับข้อมูลตัวเลขและตัวอักษร (alphabetic) ในฐานข้อมูล

หากต้องการชื่อที่มาก่อนในลำดับอักษร ใช้ MIN(name) หากต้องการชื่อสุดท้าย ใช้ MAX(name)

SQL AVG

ฟังก์ชัน SQL AVG คืนค่าเฉลี่ยของคอลัมน์เฉพาะ

สมมติต้องการค่าเฉลี่ยรางวัล "พนักงานเดือน" ต่อพนักงาน ใช้คิวรี่:

SELECT AVG(employee_month_awards) FROM employees;

ผลลัพธ์:

avg
4

(1 แถว)

SQL SUM

ฟังก์ชัน SQL SUM หาผลรวมของคอลัมน์เฉพาะ

สมมติต้องการรู้ว่ามีรางวัล "พนักงานเดือน" ออกให้ไปทั้งหมดกี่รางวัล ใช้ SQL SUM:

SELECT SUM(employee_month_awards) FROM employees;

ผลลัพธ์:

sum
20

(1 แถว)

สรุป

SQL aggregate functions คืนข้อมูลเกี่ยวกับข้อมูลในฐานข้อมูล AVG ตัวอย่างคืนค่าเฉลี่ยของคอลัมน์ มี 5 aggregate functions: MIN, MAX, COUNT, SUM, และ AVG

พร้อมท้าทาย?

เขียน aggregate function หาจำนวนพนักงานชื่อ "Linda" เปรียบเทียบกับคิวรี่ข้างต้นดูว่าสมเหตุสมผลไหม

เราเขียนคู่มือครบถ้วน How to Learn SQL หากหาแหล่งเรียนรู้ใหม่ ดูที่หน้า How to Learn SQL