GROUP BY : 특정 컬럼을 기준으로 그룹화
집계함수
실습 문제
-- 실습문제
-- 1. 성적표 테이블에서 학생별로 평균점수를 출력해주세요.
-- 이때 소수점 1자리 까지만 출력되도록 ROUND 함수도 활용해보세요. (ROUND(평균을 뽑은값,1)
SELECT 학생ID, ROUND(AVG(성적),1) AS 평균점수
FROM 성적표
GROUP BY 학생ID;
-- 2. 직원 테이블에서 모든 직원 중에 최고연봉과 최저연봉을 출력해주세요.
SELECT MAX(연봉) AS 최고연봉, MIN(연봉) AS 최저연봉
FROM 직원;
-- 3. 수강생정보 테이블에서 각 소속된 반별로 몇 명이 있는지 출력해주세요.
SELECT 소속반, COUNT(소속반) AS 반별인원수
FROM 수강생정보
GROUP BY 소속반;
-- 4. 성적표 테이블에서 학생별로 국어와 영어 성적의 평균을 출력해주세요.
SELECT 학생ID, ROUND(AVG(성적),1) AS 수학제외한평균
FROM 성적표
WHERE 과목 IN ('국어', '영어')
GROUP BY 학생ID;
-- 5. 직원 테이블에서 부서별로 연봉의 합계를 출력해주세요.
SELECT 부서ID, SUM(연봉) AS 부서별연봉합계
FROM 직원
GROUP BY 부서ID;
-- 6. 직원 테이블과 직원 연락처 테이블을 이용해서 직원별로 연락처정보가 몇개 있는지 출력해주세요.
-- 직원 테이블을 기준으로 A0001 ~ A0011 의 모든 직원을 보여주되, 연락처가 없는 대상도 0건으로 출력
SELECT A.직원ID, COUNT(B.연락처) AS 연락처개수
FROM 직원 A LEFT OUTER JOIN 직원연락처 B
ON (A.직원ID = B.직원ID)
GROUP BY A.직원ID;