728x90
매일 SQLD 기출 문제 풀기 챌린지
문제18.
아래의 SQL결과를 적으시오.
[ 테이블 명: TAB1 ]
COL1 |
4 |
8 |
4 |
8 |
NULL |
NULL |
select avg(col1) - avg(nvl(col1,0)) from tab1;
주관식 답 :
해설해보기
이 문제는 그룹함수인 avg 에 대해서 알고 있는지 물어보는 문제이다.
* AVG()
그룹함수는 avg는 평균을 계산하는 함수이다.
이 함수는 null을 무시하고 계산한다.
위의 SQL을 해석해보면
1. COL1에 대한 평균
: NULL을 무시하기 때문에 4로 나눈다( NULL인 행은 포함하지 않고 무시)
AVG(COL1) = ( 4 + 8 + 4 + 8 ) / 4 = 6
2. NULL을 0으로 바꾼 COL1에 대한 평균
: NULL을 특정 값으로 바꾸는 NVL( [컬럼명], [컬럼의 값이 NULL일때 바꿀 값]) 함수에 의해
NULL을 0으로 바꾸고, 0은 무시하지 않기 때문에 6으로 나눈다
AVG(NVL(COL1, 0)) = ( 4 + 8 + 4 + 8 + 0 + 0 ) / 6 = 4
따라서
6 - 4 = 2를 출력하게 된다.
정답은 2
직접 실행해보기
SELECT AVG(COL1) - AVG(NVL(COL1, 0)) FROM TAB1;
관련 스크립트
create table tab1
( col1 number(10) );
insert into tab1 values(4);
insert into tab1 values(8);
insert into tab1 values(4);
insert into tab1 values(8);
insert into tab1 values(null);
insert into tab1 values(null);
commit;
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 20>그룹함수 SUM에 대한 기출문제 (0) | 2024.03.20 |
---|---|
<SQLD 19> 그룹함수 사용 SQL에 대한 기출문제 (0) | 2024.03.19 |
<SQLD 17> LIKE 연산자에 대한 기출문제 (0) | 2024.03.17 |
<SQLD 16> 그룹함수 NULL값을 무시하는 것에 대한 기출문제 (0) | 2024.03.16 |
<SQLD 15> ORDER BY 절의 이해에 대한 기출문제 (0) | 2024.03.15 |