logo

SQL 그룹 기준

SQL GROUP BY 절은 동일한 데이터를 하나 이상의 열을 기반으로 그룹으로 정렬하는 데 사용됩니다. 일반적으로 COUNT() SUM() AVG() MAX() 및 MIN()과 같은 집계 함수와 함께 사용되어 각 데이터 그룹에 대한 계산을 수행합니다.

과일_이미지' title=

예: 먼저 우리는 만들다 GROUP BY 명령을 사용할 데모 SQL 데이터베이스 및 테이블.

직원' loading='lazy' title=

질문:



SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;

산출:

쿼리별 그룹화' loading='lazy' title=

통사론:

SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;
  • 집계_함수: 집계에 사용되는 함수. 합계() AVG() 개수().
  • 테이블_이름: 데이터가 선택된 테이블의 이름입니다.
  • 상태: 그룹화하기 전에 행을 필터링하는 선택적 조건입니다(WHERE와 함께 사용됨).
  • 열1 열2: 그룹화가 적용되는 열입니다.

GROUP BY의 예

Student 테이블이 있다고 가정해 보겠습니다. 이 테이블에 일부 샘플 데이터를 삽입한 다음 GROUP BY를 사용하여 작업을 수행하여 열을 기준으로 행을 그룹화하고 데이터를 집계하는 방법을 이해하겠습니다.

grp' loading='lazy' title=

예 1: 단일 열로 그룹화

단일 열로 그룹화하면 해당 열에서 동일한 값을 가진 행이 결합됩니다. 예를 들어 과목별로 그룹화하면 각 과목에 등록된 학생 수를 알 수 있습니다.

질문:

SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;

산출:

grp-1' loading='lazy' title=

설명: 각 과목은 표에 두 번씩 나타나므로 영어 수학과 과학의 개수는 2입니다.

예 2: 여러 열을 기준으로 그룹화

여러 열에 GROUP BY를 사용하면 해당 열에서 동일한 값을 공유하는 행을 그룹화할 수 있습니다. 예를 들어 과목 및 연도별로 그룹화하면 행이 동일한 과목-연도 쌍으로 결합되며 각 그룹에 속하는 학생 수를 계산할 수 있습니다.

질문:

SELECT subject year COUNT(*) FROM Student GROUP BY subject year;

산출:

학생 그룹' loading='lazy' title=

이식: 같은 과목, 같은 학년의 학생들이 함께 모입니다. 각 과목-연도 쌍이 두 번 발생하므로 모든 그룹에 대해 개수는 2입니다.

GROUP BY 절의 HAVING 절

HAVING 절은 특히 SUM() COUNT() 또는 AVG()와 같은 집계 함수로 작업할 때 그룹화 후 결과를 필터링하는 데 사용됩니다. WHERE와 달리 그룹화된 데이터에 조건을 적용합니다.

엠프' loading='lazy' title=

예 1: 총 급여로 필터링

이 쿼리에서는 직원을 이름별로 그룹화하고 총 급여가 50000보다 큰 직원만 표시합니다.

SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; 

산출

연령-1' loading='lazy' title=

설명 : 총 급여가 50000을 초과하는 사원만 결과에 나타납니다.

예 2: 평균 급여로 필터링

이 쿼리에서는 직원을 연령별로 그룹화하고 평균 급여가 60000 이상인 연령 그룹만 표시합니다.

SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;

산출:

출력-1' loading='lazy' title=

설명: 이 쿼리는 직원을 연령별로 그룹화하고 각 연령에 대한 평균 급여를 계산합니다. 평균 급여가 60000 이상인 연령 그룹만 표시됩니다.

퀴즈 만들기