SQL은 데이터를 분석하거나 처리할 때 꼭 필요한 도구입니다. 특히 비개발자라도 기본적인 SQL 문법을 이해하면 업무에서 큰 도움을 받을 수 있습니다. 오늘은 그중에서도 데이터를 정렬하고 집계하는 방법에 대해 쉽게 알아보겠습니다.
1. 데이터를 정렬하기 (ORDER BY)
SQL에서 데이터를 정렬할 때는 ORDER BY
구문을 사용합니다. 정렬은 원하는 데이터를 보기 좋게 정리하는 첫 번째 단계입니다.
기본 구문
SELECT 컬럼1, 컬럼2
FROM 테이블명
ORDER BY 정렬할_컬럼 [ASC|DESC];
ASC
: 오름차순 (기본값)DESC
: 내림차순
예제 1: 직원 데이터를 이름 순으로 정렬하기
SELECT name, department, salary
FROM employees
ORDER BY name ASC;
이 쿼리는 직원 이름을 기준으로 데이터를 오름차순으로 정렬합니다.
예제 2: 급여를 기준으로 높은 순서로 정렬하기
SELECT name, department, salary
FROM employees
ORDER BY salary DESC;
이 쿼리는 급여를 기준으로 데이터를 내림차순으로 정렬합니다.
TIP: 정렬 기준을 여러 개 지정할 수도 있습니다.
SELECT name, department, salary
FROM employees
ORDER BY department ASC, salary DESC;
이 쿼리는 부서를 기준으로 오름차순 정렬한 후, 같은 부서 내에서는 급여를 내림차순으로 정렬합니다.
2. 데이터를 집계하기 (GROUP BY)
집계는 데이터를 그룹화하여 요약된 정보를 얻는 데 사용됩니다.
기본 구문
SELECT 그룹화할_컬럼, 집계함수(컬럼)
FROM 테이블명
GROUP BY 그룹화할_컬럼;
GROUP BY
: 데이터를 그룹화- 집계 함수:
SUM()
: 합계AVG()
: 평균MAX()
: 최대값MIN()
: 최소값COUNT()
: 개수
예제 1: 부서별 평균 급여 구하기
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
이 쿼리는 각 부서의 평균 급여를 계산합니다. 결과는 다음과 같이 나타납니다:
department | avg_salary |
---|---|
HR | 5000 |
IT | 7000 |
Sales | 6000 |
예제 2: 부서별 직원 수 구하기
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;
이 쿼리는 각 부서에 소속된 직원 수를 계산합니다.
예제 3: 조건 추가하기 (HAVING)
HAVING
구문을 사용하면 그룹화된 결과에 조건을 추가할 수 있습니다.
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 6000;
이 쿼리는 평균 급여가 6000 이상인 부서만 출력합니다.
3. 정렬과 집계를 함께 사용하기
정렬과 집계를 조합하면 분석에 더 유용한 데이터를 얻을 수 있습니다.
예제: 직원 수가 많은 부서 상위 3개 출력하기
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department
ORDER BY employee_count DESC
LIMIT 3;
이 쿼리는 직원 수를 기준으로 부서를 내림차순 정렬하고, 상위 3개 부서만 출력합니다.
4. 실제 데이터로 연습해보기
가상의 데이터셋
아래는 간단한 employees
테이블의 예시 데이터입니다:
name | department | salary |
Alice | HR | 5000 |
Bob | IT | 7000 |
Carol | Sales | 6000 |
Dave | IT | 8000 |
Eve | HR | 4500 |
위 데이터를 활용해 직접 SQL을 작성해보세요.
마무리
오늘은 SQL의 ORDER BY
와 GROUP BY
를 활용해 데이터를 정렬하고 집계하는 방법을 알아봤습니다. 위에서 다룬 기본 예제들만 익혀도 실무에서 데이터를 더 잘 이해하고 활용할 수 있을 것입니다.
더 궁금한 내용이 있다면 댓글로 남겨주세요!
답글 남기기