반응형
[sungjuk 테이블]
1. group by having
[문제설명]
평균(aver)이 70점 이상인 행을 대상으로 주소별 인원수를 구한 후, 그 인원수가 2명 이하인 행을 인원수 순으로 조회하시오
[풀이]
select addr, count(*)
from sungjuk
where aver >= 70
group by addr
having count(*)<=2
order by count(*);
2. case when
[문제설명]
학점 기준이 다음과 같을 때, 이름, 국어, 국어학점을 국어학점 기준으로 오름차순 조회하시오
→ 학점 기준 : 국어점수 90이상 'A학점', 80이상 'B학점', 70이상 'C학점', 60이상 'D학점', 나머지 'F학점'
[풀이]
select uname, kor,
case when kor>=90 then 'A학점'
when kor>=80 then 'B학점'
when kor>=70 then 'C학점'
when kor>=60 then 'D학점'
else 'F학점'
end as kor_grade
from sungjuk
order by kor_grade;
3. 서브쿼리
[문제설명]
서울지역 학생들의 평균 국어점수 이상의 점수를 받은 서울 이외의 지역 학생의 지역, 이름, 국어점수를 조회하시오
[풀이]
select addr, uname, kor
from sungjuk
where kor>=(select avg(kor) from sungjuk where addr='Seoul')
and addr<>'Seoul';
4. nvl()
[문제설명]
문제) sungjuk테이블에 아래 데이터를 행추가 하시오
sno : max(sno)+1 (단, max()값이 null이면 0으로 바꾼후 계산한다)
uname : 손흥민
kor : 100
eng : 100
mat : 100
addr : Seoul
wdate : sysdate
[풀이]
insert into sungjuk(sno, uname, kor, eng, mat, addr, wdate)
values((select nvl(max(sno), 0)+1 from sungjuk), '손흥민', 100, 100, 100, 'Seoul', sysdate);
반응형
'Back-End > Database' 카테고리의 다른 글
SQL 예제(2) (0) | 2023.02.28 |
---|---|
Oracle SQL(3) (0) | 2023.02.27 |
Oracle SQL(2) (0) | 2023.02.23 |
댓글