[SQL] 그룹함수 MAX

·2025년 7월 3일
0

SQL

목록 보기
52/126

예제 답

select max(sal)
 from emp;

문제1. 직업이 SALESMAN 인 사원들 중에서의 최대월급을 출력하시오

select max(sal)
 from emp
 where job='SALESMAN';

문제2. 위의 결과를 다시 출력하는데 직업도 같이 출력하시오

-- 에러발생:
-- job은 여러개를 max(sal)은 하나를 출력하려고 해서 충돌됨
select job, max(sal)
 from emp
 where job='SALESMAN';
 
 
-- 에러해결: group by 사용
select job, max(sal)
 from emp
 where job='SALESMAN'
 group by job;

💡 group by를 사용해야 그룹핑이 되어서 결과 출력 가능


문제3. 직업과 직업별 최대월급을 출력하시오

select job, max(sal)
 from emp
 group by job;

문제4. 부서번호, 부서번호별 최대월급을 출력하시오

select deptno, max(deptno)
 from emp
 group by deptno;

문제5. 위의 결과를 다시 출력하는데 부서번호가 30번은 제외하고 출력하시오

select deptno, max(deptno)
 from emp
 where deptno != 30
 group by deptno;

문제6. emp21 테이블에서 서울에 사는 학생중에 최대나이를 출력하시오

select max(age)
 from emp21
 where address like '%서울%';

문제7. 통신사, 통신사별 최대나이를 출력하시오

select telecom, max(age)
 from emp21
 where telecom is not null
 group by telecom;

문제8. 위의 결과를 다시 출력하는데 LG U+ 를 LG 로 통합해서 출력하시오

select decode(telecom,'LG U+', 'LG', telecom) as telecom , max(age)
 from emp21
 where telecom is not null
 group by decode(telecom,'LG U+', 'LG', telecom);

LG U+면 LG 로 나오게하고 나머지 텔레콤은 그냥 텔레콤으로 나오게해라


문제9. 직업, 직업별 최대월급을 출력하는데 직업이 SALESMAN은 제외하고 출력하시오

select job, max(sal)
 from emp
 where job != 'SALESMAN'
 group by job;

💡 실행순서: from - where - group by - select


문제10. 위의 결과를 다시 출력하는데 직업을 ABCD 순서대로 출력하시오

select job, max(sal)
 from emp
 where job != 'SALESMAN'
 group by job
 order by job;

💡
select 검색할 컬럼명
from 테이블명
where 검색조건
group by 그룹핑할 컬럼
order by 정렬할 컬럼

  • 코딩순서: select - from - where - group by - order by
  • 실행순서 from - where - group by - select - order by

0개의 댓글