GROUP BY
βGROUP BYβ μ μ SQLμμ νΉμ μ΄(λ€)μ κ°μ κΈ°λ°νμ¬ ν(row)λ€μ κ·Έλ£Ήνν λ μ¬μ©λ©λλ€.
- μ΄ κΈ°λ₯μ μ§κ³ν¨μ(βSUMβ, βAVGβ, βCOUNTβ, βMINβ, βMAXβ λ±)μ ν¨κΌ μ¬μ©λμ΄, κ° κ·Έλ£Ήμ λν μ§κ³λ λ°μ΄ν°λ₯Ό κ³μ°νκ³ λ°ννλ λ° μ£Όλ‘ νμ©λ©λλ€.
- βGROUP BYβ λ λ°μ΄ν°λ₯Ό μμ½νκ³ , νΉμ κΈ°μ€μ λ°λ₯Έ λ°μ΄ν°μ ν΅κ³λ₯Ό λΆμν λ μ μ©νκ² μ¬μ©λ©λλ€.
βGROUP BYβ μ¬μ© μ
-
κ·Έλ£Ήλ³ ν©κ³ κ³μ°: κ° λΆμλ³ μ΄ κΈμ¬λ₯Ό κ³μ°νκ³ μΆμ λ
SELECT department, SUM(salary) FROM employees GROUP BY departmentl
μ΄ μΏΌλ¦¬λ βemployeesβ ν μ΄λΈμμ βdepartmentβ λ³λ‘ κ·Έλ£Ήννκ³ , κ° κ·Έλ£Ήμ βsalaryβ ν©κ³λ₯Ό κ³μ°ν©λλ€.
-
κ·Έλ£Ήλ³ νκ· κ³μ°: κ° μ ν μΉ΄ν
κ³ λ¦¬λ³ νκ· κ°κ²©μ κ³μ°νκ³ μΆμ λ
SELECT category, AVG(price) FROM products GROUP BY category;
μ΄ μΏΌλ¦¬λ βproductβ ν μ΄λΈμμ βcategoryβ λ³λ‘ κ·Έλ£Ήννκ³ , κ° κ·Έλ£Ήμ price νκ· μ κ³μ°ν©λλ€.
-
κ·Έλ£Ήλ³ λ°μ΄ν° μ κ³μ°: κ° λΆμμ μν μ§μ μλ₯Ό μΈκ³ μΆμ λ
SELECT department, COUNT(*) FROM employees GROUP BY department;
μ΄ μΏΌλ¦¬λ βemployeesβ ν μ΄λΈμμ βdepartmentβ λ³λ‘ κ·Έλ£Ήννκ³ , κ° κ·Έλ£Ήμ μ§μ μλ₯Ό μΈμ΄ λ°νν©λλ€.
βGROUP BYβ μ μ νΉμ§
- λ°μ΄ν°λ₯Ό κ·Έλ£Ήννκ³ κ° κ·Έλ£Ήμ λν μ§κ³λ₯Ό μννμ¬, λ°μ΄ν°μ μμ½ μ 보λ₯Ό μ 곡ν©λλ€.
- μ¬λ¬ μ΄μ κΈ°μ€μΌλ‘ κ·Έλ£Ήνν μ μμΌλ©°, μ΄ κ²½μ° μ νλ λͺ¨λ μ΄μ μ‘°ν©μ λ°λΌ λ°μ΄ν°κ° κ·Έλ£Ήνλ©λλ€.
- μ§κ³ ν¨μμ ν¨κ» μ¬μ©λμ΄, κ° κ·Έλ£Ήλ³λ‘ ν¨κ³, νκ· , μ΅μκ°, μ΅λκ° λ±μ κ³μ°ν μ μμ΅λλ€.
- βHAVINGβ μ κ³Ό ν¨κ» μ¬μ©νμ¬, μ§κ³ κ²°κ³Όμ λν 쑰건μ μ€μ ν μ μμ΅λλ€. μ΄λ βWHEREβ μ κ³Ό μ μ¬νμ§λ§, βGROUP BYβ λ‘ κ·Έλ£Ήνλ κ²°κ³Όμ λν΄ μ‘°κ±΄μ μ μ©νλ μ μ΄ λ€λ¦ λλ€.
μ¬μ© μ κ³ λ €μ¬ν
- βGROUP BYβ λ₯Ό μ¬μ©ν λλ μ νλ μ΄μ΄ βSELECTβ μ μ ν¬ν¨λμ΄μΌ ν©λλ€. κ·Έλ μ§ μμ κ²½μ°, SQL μΏΌλ¦¬κ° μμλλ‘ μλνμ§ μμ μ μμ΅λλ€.
- λκ·λͺ¨ λ°μ΄ν°μ μμ βGROUP BYβ λ₯Ό μ¬μ©ν λλ 쿼리μ μ±λ₯μ κ³ λ €ν΄μΌ ν©λλ€. μ μ ν μΈλ±μ€ μ¬μ©κ³Ό λ°μ΄ν° ꡬ쑰μ μ΅μ νκ° μ±λ₯μ ν° μν«μ λ―ΈμΉ μ μμ΅λλ€.
βGROUP BYβ μ μ λ°μ΄ν°λ₯Ό λΆμνκ³ μμ½ μ 보λ₯Ό μ»κΈ° μν κ°λ ₯ν λꡬλ‘, λ°μ΄ν°λ² μ΄μ€ λ΄μμ μλ―Έ μλ μΈμ¬μ΄νΈλ₯Ό λμΆνλ λ° ν¬κ² κΈ°μ¬ν©λλ€.