SQL 통한 Database 관리

group by 뭐야

JBS 12 2024. 8. 30. 00:13

`GROUP BY`는 SQL에서 데이터를 특정 열을 기준으로 그룹화할 때 사용하는 구문입니다. 이 구문은 주로 집계 함수(예: `COUNT`, `SUM`, `AVG`, `MAX`, `MIN`)와 함께 사용되어 그룹별로 데이터를 집계하고 요약된 결과를 반환합니다.

### 사용 예시
다음은 `GROUP BY`의 기본 사용 예시입니다:

```sql
SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name;
```

이 쿼리는 `table_name` 테이블에서 `column_name` 열을 기준으로 데이터를 그룹화하고, 각 그룹에 속한 행의 수를 반환합니다.

### 예제 설명
예를 들어, 직원 테이블(`employees`)이 있다고 가정해 보겠습니다. 이 테이블에는 직원의 이름과 부서 정보가 포함되어 있다고 할 때, 부서별로 직원 수를 알고 싶다면 다음과 같은 쿼리를 작성할 수 있습니다:

```sql
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
```

이 쿼리는 `department` 열을 기준으로 데이터를 그룹화한 다음, 각 부서에 속한 직원 수를 반환합니다.

### 주요 특징
- `GROUP BY`는 여러 열에 대해 그룹화할 수 있습니다. 이 경우 열 순서에 따라 그룹이 지정됩니다.
- `GROUP BY` 절을 사용할 때는 `SELECT` 절에서 선택한 열들이 모두 `GROUP BY`에 포함되어 있거나, 집계 함수로 감싸져 있어야 합니다.
- `HAVING` 절과 함께 사용하여 그룹화된 데이터에 대해 필터링할 수도 있습니다. `HAVING` 절은 `WHERE` 절과 비슷하지만, 집계된 데이터를 기준으로 조건을 설정할 수 있습니다.

### 예제
```sql
SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
```

이 쿼리는 부서별로 평균 급여를 계산하고, 평균 급여가 50,000을 초과하는 부서만 반환합니다.

'SQL 통한 Database 관리' 카테고리의 다른 글

’%S _ _ ' 에서 첫번째 자리에 아무것도 안 올수도있어?  (0) 2024.08.30
‘_ S _ % _' 는 몇번재 자리이니?  (0) 2024.08.30
집계함수 종류  (0) 2024.08.30
having 절?  (0) 2024.08.30
round ()  (0) 2024.08.30