Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL GROUP BY 절에 여러 열을 지정하는 것이 중요한 이유

MySQL에서 GROUP BY 절에 여러 개의 열(column)을 지정하면 결과 집합(result set)을 더 작은 그룹으로 세분화할 수 있습니다. GROUP BY 절에 지정하는 열의 수가 많아질수록 각 그룹의 크기는 더 작아지며, 따라서 더욱 구체적이고 상세한 데이터 분석이 가능합니다.

여러 열을 사용한 GROUP BY의 동작 방식

GROUP BY 절에 여러 열을 지정하면 MySQL은 첫 번째 열을 기준으로 먼저 그룹화한 뒤, 그 안에서 두 번째 열의 값에 따라 그룹을 다시 나누는 방식으로 동작합니다. 이렇게 하면 단일 열만으로는 파악하기 어려운 복합적인 패턴까지 손쉽게 집계할 수 있습니다.

예제

다음 예제는 직원(employees) 테이블에서 직급(designation)입사 연도(YEAR(DoJ)), 두 개의 열을 기준으로 그룹화하여 직급별·연도별 직원 수를 집계하는 쿼리입니다.

mysql> Select designation, YEAR(Doj), count(*) from employees GROUP BY designation, YEAR(DoJ);

+-------------+-----------+----------+
| designation | YEAR(Doj) | count(*) |
+-------------+-----------+----------+
| Asso.Prof   | 2013      | 1        |
| Asst.Prof   | 2015      | 1        |
| Asst.Prof   | 2016      | 1        |
| Prof        | 2009      | 2        |
| Prof        | 2010      | 1        |
+-------------+-----------+----------+

5 rows in set (0.00 sec)

위 결과를 살펴보면 'Prof' 직급이 2009년 입사자 2명과 2010년 입사자 1명으로 나뉘어 집계된 것을 확인할 수 있습니다. 만약 GROUP BY 절에 designation 열 하나만 지정했다면, Prof 직급 전체가 하나의 그룹으로 합쳐져 총 3명이라는 결과만 얻었을 것입니다. 이처럼 여러 열을 함께 지정하면 데이터를 원하는 수준까지 세밀하게 나누어 분석할 수 있다는 점이 GROUP BY 절에서 여러 열을 사용하는 핵심적인 장점입니다.