English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 열 값에 따라 행을 그룹화하는 방법을 배울 것입니다.
GROUP BY 절과SELECT문집계 함수함께 사용하여 행을 일반 열 값에 따라 그룹화할 수 있습니다.
이를 이해하기 쉽게 하기 위해 아래를 보여드리겠습니다.employees와departments표.
+--------+--------------+------------+---------+ | emp_id | emp_name | hire_date | dept_id | +--------+--------------+------------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 4 | | 2 | Tony Montana | 2002-07-15 | 1 | | 3 | Sarah Connor | 2005-10-18 | 5 | | 4 | Rick Deckard | 2007-01-03 | 3 | | 5 | Martin Blank | 2008-06-24 | NULL | +--------+--------------+------------+---------+ | +---------+------------------+ | dept_id | dept_name | +---------+------------------+ | 1 | Administration | | 2 | Customer Service | | 3 | Finance | | 4 | Human Resources | | 5 | Sales | +---------+------------------+ | |
표: employees | 표: departments |
지금은 고용원과 그들이 속한 부서의 이름을 찾는 것 이상으로, 각 부서의 고용원 총 수를 찾고자 합니다.
작은 테이블에 대해서는 간단히 적용할 수 있습니다.왼쪽 조인고용원 수를 계산할 수 있지만, 한 테이블에 수천 명의 고용원이 포함되어 있다면 이는 쉽지 않을 것입니다.
이 경우 GROUP BY 절과 SELECT 문을 함께 사용할 수 있습니다. 예를 들어:
SELECT t1.dept_name, count(t2.emp_id) AS total_employees FROM departments AS t1 LEFT JOIN employees AS t2 ON t1.dept_id = t2.dept_id GROUP BY t1.dept_name;
위의 문장을 실행하면 다음과 같은 출력을 얻을 것입니다:
+-------------------+-----------------+ | dept_name | total_employees | +-------------------+-----------------+ | Administration | 1 | | Customer Service | 0 | | Finance | 1 | | Human Resources | 1 | | Sales | 1 | +-------------------+-----------------+
다음 장에서는 HAVING 절과 GROUP BY 절을 사용하여 그룹이나 집계에 검색 조건을 지정하는 방법을 배울 것입니다.