테이블 prereq (course_id, prereq_id)
course(course_id, title, dept_name, credits)
가 있을때 선수교과목이 없는 교과목의 course_id와 교과목명을 검색
을 하기위해서
select distinct c.course_id, c.title
from course c JOIN prereq p
where c.course_id <> p.course_id;
를 사용하여 데이터를 뽑았습니다.
1. 근데 결과가 정확하다는 것을 확인시켜주는 SQL을 작성하려고하는데 어떤식으로 확인해야할지 감이 잡히질 않습니다.
null 값을 사용하는건가요?
2. 평균이하 연봉을 받고 있는 강사들의 연봉은 5%인상하고 그렇지 않은 강사들의 연봉은 3%인상하는 SQL을 작성하려고하는데
이런경우 쿼리문을 두번쓰면 avg값이 바뀌어 정확한 값이나오질않을거같고 다음과같이 case문을 사용하여
updata instructor
set salary = case
when salary <= avg(salary) than salary*1.05
else salary*1.03
end
이렇게 쓰는경우 case문안의 avg(salary)값은 끝날때까지 한값으로가는지 아니면 salary값이 실행될때마다 실시간으로 바뀌는지 궁금합니다.
Comment 1
-
슬이슬이
2016.10.07 16:09
1. Join 의 조건절이 없어 실행이 않되는 쿼리문입니다.
2. 집계함수 사용 오류입니다.
질문하신 의도와 같은 이유로 Set문에는 집계함수(AVG)는 사용할수 없습니다.