Computer >> 컴퓨터 >  >> 프로그램 작성 >> SQL

SQL Group By:완전한 가이드

SQL GROUP BY 문은 집계 함수에 나타납니다. 쿼리에서 선택한 데이터를 특정 열로 조합하는 데 사용됩니다. GROUP BY 문을 사용하여 그룹화할 여러 열을 지정할 수 있습니다.

SQL에서 집계 함수로 작업할 때 공통 열 값으로 행을 그룹화해야 하는 경우가 많습니다.

예를 들어, 귀하의 비즈니스에 대한 지점 이름 목록을 얻고 싶다고 가정해 보겠습니다. 이 정보 외에 해당 지점에서 일하는 직원 수를 확인하려고 합니다. 집계 함수를 사용하고 분기 이름으로 그룹화해야 합니다.

바로 여기에서 SQL GROUP BY 절이 들어옵니다. 이 튜토리얼에서는 GROUP BY 조항.

집계 함수 새로고침

데이터베이스로 작업할 때 데이터베이스 내의 실제 데이터를 보고 싶지 않은 경우가 많습니다. 대신 데이터에 대한 정보가 필요할 수 있습니다. 예를 들어 비즈니스에서 판매하는 고유한 제품의 수나 리더보드의 최대 점수를 알고 싶을 수 있습니다.

SQL에는 여러 기능이 내장되어 있습니다. 이 정보를 얻을 수 있습니다. 이를 집계 함수라고 합니다.

예를 들어 영업 사원이 몇 명인지 알고 싶다면 COUNT 함수. COUNT 함수는 특정 기준 집합을 충족하는 행 수를 계산하고 반환합니다. 기타 집계 함수에는 SUM, AVG, MIN 및 MAX가 있습니다.

집계 함수에 대해 자세히 알아보려면 SQL 집계 함수 가이드를 읽어보세요.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

SQL 그룹 BY

SQL GROUP BY 절은 행을 대조합니다. GROUP BY 절은 MIN 및 MAX와 같은 집계 함수를 사용하는 쿼리에서 일반적입니다. GROUP BY 문은 쿼리한 집계되지 않은 열의 정보를 집계하는 방법을 SQL에 알려줍니다.

GROUP BY 문의 구문은 다음과 같습니다.

SELECT COUNT(column1_name), column2_name
FROM table1_name
GROUP BY column2_name;

쿼리에 집계 함수를 사용하고 다른 열을 지정했습니다.

모든 쿼리에서 이 경우 GROUP BY 문을 사용해야 합니다. GROUP BY 문은 집계 함수 외부에 있는 분기 데이터를 표시하는 방법을 SQL에 알려줍니다. 집계 함수에 없는 테이블을 기준으로 그룹화해야 합니다.

GROUP BY 절은 SQL SELECT 문에서만 사용됩니다.

SQL에서 GROUP BY 절의 예를 살펴보겠습니다.

GROUP BY SQL 예제

직원에게 부여된 각 직급을 가진 직원의 총 수를 찾고 싶다고 가정해 보겠습니다. 즉, 영업 사원 수, 마케팅 이사 수 등을 알고 싶습니다.

다음 쿼리를 사용하여 이 정보를 검색할 수 있습니다.

SELECT title, COUNT(title)
FROM employees
GROUP BY title;

쿼리가 여러 레코드를 반환합니다.

제목 카운트
시니어 영업 직원 1
영업 담당자 4
영업 부사장 1
마케팅 이사 1

(4줄)

GROUP BY 쿼리가 직원이 보유한 고유한 직함 목록을 반환했습니다. 각 직급 옆에 직위를 보유한 직원의 수를 볼 수 있습니다.

SQL에서 GROUP BY를 사용해야 하는 경우

그룹별 절은 집계 함수에서 반환된 것보다 더 많은 정보를 얻으려는 경우에만 필요합니다. 우리는 이에 대해 조금 더 일찍 논의했습니다.

보유한 고객 수를 확인하려면 일반 쿼리만 실행하면 됩니다. 다음은 이 정보를 반환하는 쿼리의 예입니다.

SELECT COUNT(name) FROM customers;

쿼리는 결과를 그룹화하고 다음을 반환합니다.

카운트
7

(1줄)

각 로열티 플랜에 몇 명의 고객이 있는지 알고 싶다면 GROUP BY를 사용해야 합니다. 성명. 다음은 로열티 플랜 목록과 각 플랜의 고객 수를 가져오는 쿼리의 예입니다.

SELECT loyalty_plan, COUNT(loyalty_plan)
FROM customers
GROUP BY loyalty_plan;

우리의 쿼리는 데이터를 수집합니다. 그런 다음 쿼리는 다음을 반환합니다.

loyalty_plan 카운트
골드 1
없음 3
실버 1
브론즈 2

(4줄)

여러 열로 SQL 그룹화

원하는 경우 GROUP BY를 수행할 수 있습니다. 여러 열에. 예를 들어, 특정 직책을 가진 각 지점에 몇 명의 직원이 있는지 목록을 얻고 싶다고 가정해 보겠습니다. 다음 쿼리를 사용하여 이 데이터를 검색할 수 있습니다.

SELECT branch, title, COUNT(title)
FROM employees
GROUP BY branch, title;

쿼리 결과 세트는 다음을 보여줍니다.

가지 제목 카운트
스탬포드 영업 사원 1
알바니 영업 부사장 1
샌프란시스코 영업 사원 1
샌프란시스코 시니어 영업 직원 1
알바니 마케팅 이사 1
보스턴 영업 사원 2

(6줄)

쿼리는 각 직원이 보유한 직위 목록을 생성합니다. 그 타이틀을 가지고 있는 사람들의 수를 볼 수 있습니다. 데이터는 각 직원이 근무하는 지점과 직위별로 그룹화됩니다.

결론

SQL GROUP BY 집계 함수가 사용되고 추가 테이블이 쿼리되는 모든 명령문에는 절이 필요합니다. 집계 함수에서 언급되지 않은 열을 기준으로 그룹화해야 합니다.

당신은 도전을 찾고 있습니까? 각 지점에서 얼마나 많은 직원이 근무하는지 알아내는 진술을 작성하십시오.

테이블을 "employees"라고 하고 지점 이름이 저장되는 열을 "branch"라고 합니다. 위의 튜토리얼로 돌아가서 논의한 내용을 바탕으로 귀하의 쿼리가 의미가 있는지 확인하십시오.

우리는 SQL을 배우는 방법에 대한 완전한 가이드를 작성했습니다. 이 가이드는 초보자와 이미 SQL을 마스터하려는 사람들에게 적합합니다. SQL 학습 방법 페이지에서 확인하십시오.