[SQL] GROUP BY, ORDER BY
GROUP BY
GROUP BY
는 데이터를 특정 기준으로 묶어, 각 그룹별로 집계할 수 있도록 해줍니다.
예를 들어, 전공별로 학생들의 성적을 집계하거나, 연도별로 등록한 학생 수를 계산할 때 사용할 수 있습니다.
예시1: 전공별로 평균 성적 구하기
SELECT major,
AVG(grade) AS avg_grade
FROM students
GROUP BY major;
이 쿼리는 major(전공)별로 데이터를 묶고, 각 전공에 속한 학생들의 성적 평균을 계산합니다.
예시2: 등록 연도별 학생 수 구하기
SELECT enrollment_year,
COUNT(*) AS student_count
FROM students
GROUP BY enrollment_year;
ORDER BY
ORDER BY
는 쿼리의 결과를 특정 컬럼을 기준으로 오름차순(ASC
) 또는 내림차순(DESC
)으로 정렬하는 기능입니다.
기본은 오름차순으로, 명시하지 않을 경우 오름차순이 됩니다.
예시1: 성적이 높은 순서대로 학생 조회
SELECT name, grade
FROM students
ORDER BY grade DESC;
DESC
를 이용해 성적이 높은 순서대로 내림차순 정렬을 했습니다.
예시2: 성적이 낮은 순서대로 학생 조회
SELECT name, grade
FROM students
ORDER BY grade;
성적이 낮은 순서부터 정렬이 되었습니다.
여기서 알 수 있듯 ASC
를 쓰지 않아도 기본값이 오름차순이기 때문에, 오름차순으로 정렬되었습니다.
GROUP BY
와 ORDER BY
함께 사용하기
예시: 전공별 평균 성적을 내림차순으로 정렬
SELECT major,
AVG(grade) AS avg_grade
FROM students
GROUP BY major
ORDER BY avg_grade DESC;
GROUP BY
를 이용해 전공별로 성적 평균을 낸 뒤, ORDER BY
를 이용해 성적을 내림차순 정렬