티스토리 뷰
GROUP BY를 써야 할 때 와 쓰지 말아야 할 때를 구분하는 가장 명확한 기준은
"내가 보고 싶은 결과가 개별 데이터(Row)인가, 아니면 통계값(집계)인가?" 입니다.
1. GROUP BY를 안 써야 할 때(개별 데이터 조회)
"~의 목록을 출력해라"."~인 데이터를 전부 보여달라"는 문제일 때입니다. 데이터 하나하나의 원본 값이 그대로 살아있어야 하므로
묶으면 아니됩니다
- 구분 기준: 출력해야 하는 컬럼들이 다 제각각의 데이터이고, SUM, AVG, COUNT 같은 단어가 문제에 없을때.
- IF 1번 2번 3번이 각각 한 줄씩 다 나와야 하므로 GROUP BY를 쓰면 안되옵니다. 사용을 한다면 데이터가 합쳐져서 증발합니다.
- 원본 데이터가 그대로 필요함
SELECT id, name, hire_date
FROM employee;
2. GROUP BY를 무조건 써야 할 때(통계 및 집계)
"~별로 ~의 합계/평균/개수를 구해라" 처럼 데이터들을 특정 기준으로 쪼개서 통계를 내야 할 때 입니다.
- 구분 기준: SELECET 절에 SUM(), AVG(), COUNT(), MAX(), MIN() 같은 집계 함수가 들어갈 때
- 문제예시 : SUM()와 같이 통계를 내야하는 문제 GROUP BY를 사용합니다.
| 구분 | ❌ GROUP BY 안 씀 (목록 조회) | ⭕ GROUP BY 필수 (통계 조회) |
| 문제 키워드 | ~의 목록을 출력, ~을 조회 | ~별로 (예: 부서별로, 월별로, 성별로) |
| SELECT 절 특징 | SELECT ID, 이름, 날짜 (순수 컬럼들) | SELECT 부서, SUM(급여), COUNT(*) (집계 함수) |
| 데이터 형태 | 원본 데이터가 한 줄씩 그대로 다 나옴 | 여러 줄의 데이터가 기준에 따라 한 줄로 압축됨 |
'SQL' 카테고리의 다른 글
| [MySQL] CHAR VARCHAR (0) | 2026.04.12 |
|---|---|
| [SQL] JOIN 정리 - 종류 및 설명 (0) | 2026.04.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ResultType
- springbootcss
- ajax로그인
- cookie
- varchar
- springboot
- java
- char
- bcrypt
- 오래된이용자
- deque
- Spring
- DTO
- 비밀번호암호화
- parameterType
- mybatis
- 날씨불러오기
- 기상청api
- 데이터타입
- 셀레니움
- 회원상태
- FIFO
- 비동기식
- 세션
- LIFO
- 차이점
- AJAX
- 스케줄러
- 크롤링연습
- Vo
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
글 보관함