GROUP BY와 ORDER BY의 차이는 뭘까? 비슷해 보이지만 전혀 다른 역할
GROUP BY
와 ORDER BY
의 차이는 뭘까? 비슷해 보이지만 전혀 다른 역할
SQL을 처음 배우면 자주 혼동되는 개념 중 하나가 GROUP BY
와 ORDER BY
입니다. 둘 다 SELECT문에서 자주 사용되며 컬럼 이름을 기준으로 뭔가를 "묶거나 정렬"하는 것 같지만, 실제로는 그 목적과 동작 방식이 완전히 다릅니다. 이번 글에서는 이 두 구문의 차이를 예제와 함께 명확히 정리해 보겠습니다.
1. GROUP BY
– 같은 값을 하나의 그룹으로 묶기
GROUP BY
는 집계 함수(COUNT
, SUM
, AVG
등)와 함께 사용되어 같은 값을 가진 행들을 하나의 그룹으로 묶습니다. 예를 들어, 부서별 사원 수를 구하고자 할 때 사용됩니다.
SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id;
위 쿼리는 department_id
가 같은 행들을 묶어 각 부서에 몇 명이 있는지 알려줍니다.
✅ 핵심:
GROUP BY
는 묶기 (집계 대상 그룹 생성)
2. ORDER BY
– 결과를 원하는 순서로 정렬
ORDER BY
는 쿼리 결과의 행 순서를 정렬합니다. 오름차순(ASC
) 또는 내림차순(DESC
)으로 정렬할 수 있으며, 집계와는 아무런 관련이 없습니다.
SELECT employee_id, salary
FROM employees
ORDER BY salary DESC;
위 쿼리는 월급이 높은 순으로 직원을 나열하며, 어떤 그룹화도 하지 않습니다.
✅ 핵심:
ORDER BY
는 정렬 (출력 순서 제어)
3. 둘을 함께 사용하는 예
GROUP BY
로 먼저 그룹을 만든 후, 그 결과를 ORDER BY
로 정렬할 수도 있습니다.
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
ORDER BY avg_salary DESC;
이 쿼리는 부서별 평균 급여를 계산한 뒤, 평균이 높은 부서부터 나열합니다.
✅ 마무리
GROUP BY
: 집계를 위해 데이터를 묶는 역할ORDER BY
: 결과를 정렬하는 역할
두 구문은 비슷해 보이지만 완전히 다른 용도입니다. 실무에서는 이 둘을 함께 사용하는 경우도 많기 때문에 그 차이를 정확히 이해하는 것이 중요합니다.
#SQL #GROUPBY #ORDERBY #정렬 #집계 #SELECT문 #기초문법 #실무팁
'SQL 기초 정리' 카테고리의 다른 글
SELECT *를 쓰면 왜 안 좋을까? 실무에서 컬럼을 명시하는 이유 (0) | 2025.04.10 |
---|---|
NULL은 0이 아니다! SQL에서 NULL이 가진 의미와 주의점 (0) | 2025.04.10 |
WHERE 절 조건의 순서가 성능에 영향을 줄까? (0) | 2025.04.10 |
INNER JOIN과 OUTER JOIN, 뭐가 다를까? 실무에서 꼭 알아야 할 차이점 (0) | 2025.04.10 |
DISTINCT는 정말 중복만 제거할까? 사용 시 주의해야 할 3가지 포인트 (0) | 2025.04.08 |