SQL Academy · บทเรียน

COUNT, SUM, AVG, MIN, MAX

ใช้ฟังก์ชันรวมข้อมูลหลักทั้งห้า ทำความเข้าใจ COUNT(*) เทียบกับ COUNT(column) และรู้ว่าแต่ละฟังก์ชันจัดการกับ NULL อย่างไร

บทเรียน 1 จาก 413 ขั้นตอน

COUNT, SUM, AVG, MIN, MAX เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

ฟังก์ชันรวมทำอะไร

ฟังก์ชันรวม จะรวมหลายแถวให้เป็นค่าหนึ่งค่า ตัวอย่างเช่น รายได้รวม ค่าเฉลี่ยของคะแนน และวันที่ล่าสุด

COUNT

นับจำนวนแถว มีสองรูปแบบ:

SELECT COUNT(*)         FROM users;          -- counts ALL rows
SELECT COUNT(email)     FROM users;          -- counts rows where email IS NOT NULL
SELECT COUNT(DISTINCT country) FROM users;   -- distinct non-NULL countries

SUM

หาผลรวมของคอลัมน์ตัวเลข โดยจะข้ามค่า NULL:

SELECT SUM(total) FROM orders;
SELECT SUM(total) FROM orders WHERE user_id = 42;

AVG

คำนวณค่าเฉลี่ยเลขคณิต โดยจะข้ามค่า NULL — ดังนั้น AVG(x) จึงเท่ากับ SUM(x)/COUNT(x) ไม่ใช่ SUM(x)/COUNT(*):

SELECT AVG(rating) FROM reviews;

MIN และ MAX

ค่าที่น้อยที่สุดและมากที่สุดซึ่งไม่ใช่ NULL ใช้ได้กับตัวเลข วันที่ สตริง และทุกสิ่งที่เปรียบเทียบได้:

SELECT MIN(created_at), MAX(created_at) FROM orders;
SELECT MIN(name), MAX(name) FROM users;   -- alphabetic

ฟังก์ชันรวมและ NULL

ฟังก์ชันรวมทั้งหมด ยกเว้น COUNT(*) จะข้าม input ที่เป็น NULL AVG, SUM, MIN, MAX จะคืนค่า NULL เมื่อไม่มี input ที่ไม่ใช่ NULL

-- Suppose the table is empty or all rating is NULL:
SELECT AVG(rating) FROM reviews;   -- NULL

การรวมฟังก์ชันรวมหลายตัว

ใช้ฟังก์ชันรวมหลายตัวในคำสั่งค้นหาเดียว — ทุกฟังก์ชันจะเห็นกลุ่มเดียวกัน:

SELECT COUNT(*)      AS orders,
       SUM(total)    AS revenue,
       AVG(total)    AS avg_order,
       MIN(total)    AS smallest,
       MAX(total)    AS biggest
FROM orders
WHERE created_at >= NOW() - INTERVAL '30 days';

DISTINCT ภายในฟังก์ชันรวม

ใช้ DISTINCT ก่อนรวมค่า:

SELECT COUNT(DISTINCT user_id) AS unique_buyers,
       SUM(DISTINCT total)     AS sum_of_distinct_totals
FROM orders;

ฟังก์ชันรวมที่ไม่มี GROUP BY

เมื่อใช้ฟังก์ชันรวมโดยไม่มี GROUP BY ชุดผลลัพธ์ทั้งหมดจะเป็นกลุ่มใหญ่กลุ่มเดียว — จึงได้ผลลัพธ์ออกมาหนึ่งแถว

การกรองก่อนการรวมค่า

WHERE จะจำกัดแถว input ก่อนที่จะนำไปคำนวณฟังก์ชันรวม:

-- Average of only large orders:
SELECT AVG(total) FROM orders WHERE total > 100;

ส่วนคำสั่ง FILTER (PostgreSQL)

เพิ่มตัวกรองแยกสำหรับแต่ละฟังก์ชันรวมด้วยส่วนคำสั่ง FILTER:

SELECT
  COUNT(*)                                AS total_orders,
  COUNT(*) FILTER (WHERE status = 'paid')  AS paid_orders,
  SUM(total) FILTER (WHERE status = 'paid') AS paid_revenue
FROM orders;

สรุป

ฟังก์ชันรวมหลักห้าตัว ได้แก่ COUNT, SUM, AVG, MIN, MAX

  • COUNT(*) นับแถว ส่วน COUNT(col) จะข้าม NULL
  • ฟังก์ชันรวมอื่น ๆ จะข้าม input ที่เป็น NULL
  • ใช้ร่วมกับ WHERE / FILTER สำหรับการรวมค่าแบบมีเงื่อนไข

ตรวจสอบความเข้าใจ

สมมติว่า rating เป็น NULL ใน 100 แถวจากทั้งหมด 500 แถว AVG(rating) จะหารด้วยอะไร

เริ่มต้นได้ฟรี

เรียนรู้ SQL ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
46
บทเรียน
183

คำถามที่พบบ่อย

บทเรียน “COUNT, SUM, AVG, MIN, MAX” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “COUNT, SUM, AVG, MIN, MAX” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “COUNT, SUM, AVG, MIN, MAX”

ใช้ฟังก์ชันรวมข้อมูลหลักทั้งห้า ทำความเข้าใจ COUNT(*) เทียบกับ COUNT(column) และรู้ว่าแต่ละฟังก์ชันจัดการกับ NULL อย่างไร คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “COUNT, SUM, AVG, MIN, MAX” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม

ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. COUNT, SUM, AVG, MIN, MAX
  2. GROUP BY สำหรับคอลัมน์เดียวและหลายคอลัมน์
  3. HAVING เทียบกับ WHERE
  4. ข้อผิดพลาดที่พบบ่อย: NULL ในการรวมข้อมูล
← กลับไปที่ SQL Academy