GROUP BY 문 SQL 일부 기능을 사용하여 동일한 데이터를 그룹으로 정렬하는 데 사용됩니다. 즉, 특정 열의 다른 행에 동일한 값이 있는 경우 해당 행을 그룹으로 정렬합니다.
특징
- GROUP BY 절은 SELECT 문과 함께 사용됩니다.
- 쿼리에서 GROUP BY 절은 어디 절.
- 쿼리에서 GROUP BY 절은 주문하다 BY 절을 사용하는 경우.
- 쿼리에서 Group BY 절은 Have 절 앞에 배치됩니다.
- have 절에 조건을 넣습니다.
통사론 :
SELECT 컬럼1, 함수명(컬럼2)
FROM table_name
WHERE 조건
GROUP BY 열1, 열2
ORDER BY 열1, 열2;
설명:
- 함수_이름 : SUM() , AVG() 등 사용되는 함수의 이름입니다.
- 테이블_이름 : 테이블의 이름입니다.
- 상태 : 사용된 상태입니다.
두 개의 테이블이 있다고 가정합니다. Employee 및 Student 샘플 테이블은 다음과 같습니다. 두 개의 테이블을 추가한 후 GROUP BY에 대해 알아보기 위해 몇 가지 특정 작업을 수행합니다.
역참조 포인터
직원 테이블:
CREATE TABLE emp ( emp_no INT PRIMARY KEY, name VARCHAR(50), sal DECIMAL(10,2), age INT );>
임의의 데이터를 테이블에 삽입한 다음 GROUP BY에서 일부 작업을 수행합니다.
질문:
INSERT INTO emp (emp_no, name, sal, age) VALUES (1, 'Aarav', 50000.00, 25), (2, 'Aditi', 60000.50, 30), (3, 'Amit', 75000.75, 35), (4, 'Anjali', 45000.25, 28), (5, 'Chetan', 80000.00, 32), (6, 'Divya', 65000.00, 27), (7, 'Gaurav', 55000.50, 29), (8, 'Isha', 72000.75, 31), (9, 'Kavita', 48000.25, 26), (10, 'Mohan', 83000.00, 33);>
산출:
학생 테이블:
질문:
CREATE TABLE student ( name VARCHAR(50), year INT, subject VARCHAR(50) ); INSERT INTO student (name, year, subject) VALUES ('Alice', 1, 'Mathematics'), ('Bob', 2, 'English'), ('Charlie', 3, 'Science'), ('David', 1, 'History'), ('Emily', 2, 'Art'), ('Frank', 3, 'Computer Science');> 산출:
단일 열로 그룹화
단일 열 기준 그룹화는 특정 열의 동일한 값을 가진 모든 행을 하나의 그룹에 배치하는 것을 의미합니다. 아래와 같이 쿼리를 고려해보세요.
질문:
SELECT NAME, SUM(SALARY) FROM emp GROUP BY NAME;>
위 쿼리는 아래 출력을 생성합니다.
char에서 int로 변환 java
위 출력에서 볼 수 있듯이 중복된 NAME이 있는 행은 동일한 NAME 아래에 그룹화되고 해당 SALARY는 중복 행의 SALARY 합계입니다. 여기서는 SQL의 SUM() 함수를 사용하여 합계를 계산합니다.
여러 열로 그룹화
여러 열로 그룹화하는 것은 예를 들어 다음과 같습니다. GROUP BY 열1, 열2 . 이는 동일한 열 값을 가진 모든 행을 배치하는 것을 의미합니다. 열 1 그리고 열 2 한 그룹에. 아래 쿼리를 고려해보세요.
질문:
SELECT SUBJECT, YEAR, Count(*) FROM Student GROUP BY SUBJECT, YEAR;>
산출:
산출 : 위 출력에서 볼 수 있듯이 SUBJECT와 YEAR가 동일한 학생들이 같은 그룹에 배치됩니다. 그리고 SUBJECT만 동일하고 YEAR가 아닌 그룹은 다른 그룹에 속합니다. 따라서 여기서는 두 개의 열 또는 두 개 이상의 열에 따라 테이블을 그룹화했습니다.
GROUP BY 절의 HAVING 절
WHERE 절이 열에 조건을 지정하는 데 사용된다는 것을 알고 있지만 그룹에 조건을 지정하려면 어떻게 해야 할까요? 여기서 HAVING 절이 사용됩니다. HAVING 절을 사용하여 어떤 그룹이 최종 결과 집합에 포함될지 결정하는 조건을 지정할 수 있습니다. 또한 WHERE 절과 함께 SUM(), COUNT() 등과 같은 집계 함수를 사용할 수 없습니다. 따라서 조건에서 이러한 함수를 사용하려면 HAVING 절을 사용해야 합니다.
통사론 :
SELECT 열1, 함수_이름(열2)
FROM table_name
WHERE 조건
GROUP BY 열1, 열2
HAVING 조건
ORDER BY 열1, 열2;
설명:
배열 길이 자바
- 함수_이름 : SUM() , AVG() 등 사용되는 함수의 이름입니다.
- 테이블_이름 : 테이블의 이름입니다.
- 상태 : 사용된 상태입니다.
예 :
SELECT NAME, SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>3000;>
산출 :
위 출력에서 볼 수 있듯이 SALARY의 합계가 3000보다 큰 유일한 그룹이므로 세 그룹 중 한 그룹만 결과 집합에 나타납니다. 따라서 여기에서는 HAVING 절을 사용하여 이 조건을 조건은 열이 아닌 그룹에 배치되어야 합니다.