SQLμμ **μ§κ³ ν¨μ(Aggregate Function)**λ μ¬λ¬ νμ κ°μ ν λ²μ κ³μ°νμ¬ νλμ κ²°κ³Όκ°μ λ§λ€μ΄μ£Όλ ν¨μμ λλ€.
λ§μΉ μμ μμ μ λ²μλ₯Ό λλκ·Έν΄μ νκ· μ ꡬνκ±°λ ν©κ³λ₯Ό ꡬνλ κ²κ³Ό λΉμ·νλ€κ³ μκ°νμλ©΄ λ©λλ€!
| ν¨μ | μ€λͺ | μμ |
|---|---|---|
COUNT() |
νμ κ°μλ₯Ό μ | COUNT(*) μ 체 ν μ |
SUM() |
ν©κ³ κ³μ° | SUM(price) μ΄ κ°κ²© |
AVG() |
νκ· κ³μ° | AVG(score) νκ· μ μ |
MAX() |
μ΅λκ° | MAX(age) μ΅κ³ λμ΄ |
MIN() |
μ΅μκ° | MIN(salary) μ΅μ κΈμ¬ |
-- μμ ν
μ΄λΈ: scores(student_id, subject, score)
-- 1. μ 체 νμ μ ꡬνκΈ°
SELECT COUNT(*) FROM scores;
-- 2. μν κ³Όλͺ© μ μ ν©κ³
SELECT SUM(score) FROM scores WHERE subject = 'math';
-- 3. μμ΄ κ³Όλͺ© νκ·
SELECT AVG(score) FROM scores WHERE subject = 'english';
-- 4. μ΅κ³ μ μ
SELECT MAX(score) FROM scores;
-- 5. μ΅μ μ μ
SELECT MIN(score) FROM scores;
μ§κ³ ν¨μλ λ¨λ
μΌλ‘λ μ¬μ©νμ§λ§, GROUP BYμ ν¨κ» μ°λ©΄ κ·Έλ£Ήλ³ μ§κ³κ° κ°λ₯ν©λλ€.
-- κ³Όλͺ©λ³ νκ· μ μ
SELECT subject, AVG(score)
FROM scores
GROUP BY subject;
μ΄ μΏΌλ¦¬λ κ° κ³Όλͺ©λ³λ‘ νκ· μ μλ₯Ό μλ €μ€λλ€.
μ¦, μ§κ³ ν¨μ + GROUP BYλ λΆλ₯ + μμ½ μμ μ λ§€μ° μ μ©ν©λλ€!
| ν¨μ | κΈ°λ₯ | μμ κ²°κ³Ό |
|---|---|---|
COUNT(*) |
μ 체 ν μ κ³μ° | 5 |
SUM(score) |
μ μμ μ΄ν© | 420 |
AVG(score) |
νκ· μ μ | 84.0 |
MAX(score) |
μ΅κ³ μ μ | 100 |
MIN(score) |
μ΅μ μ μ | 60 |