728x90
매일 SQLD 기출 문제 풀기 챌린지
문제20.
아래 T1 테이블의 SQL실행 후 결과값을 작성하시오 ?
[ 테이블명 : T1 ]
COL1 | COL2 | COL3 |
10 | NULL | 10 |
NULL | 50 | 10 |
0 | 10 | 10 |
[SQL]
ㄱ. SELECT SUM(col2) FROM T1;
ㄴ. SELECT SUM(col2) FROM T1 WHERE col1 > 0;
ㄷ. SELECT SUM(col2) FROM T1 WHERE col1 IS NOT NULL;
ㄹ. SELECT SUM(col2) FROM T1 WHERE col1 IS NULL;
단답형 답
( ㄱ ) :
( ㄴ ) :
( ㄷ ) :
( ㄹ ) :
해설해보기
SUM() 함수
- 합계를 구하는 그룹함수
- 그룹함수는 NULL값을 무시하는 특성이 있다.
# ㄱ.
COL2의 합계를 구하는 SQL = 60
# ㄴ.
COL1의 값이 0보다 큰 COL2의 합계를 구하는 SQL = NULL
왜?
NULL은 알 수 없는 값이므로 값을 비교할 수 없기 때문이다.
# ㄷ.
COL1의 값이 NULL이 아닌 COL2의 합계를 구하는 SQL = 10
왜?
조건에 의해 50은 제외되며,
NULL값은 무시하고 SUM이 이루어지기 때문에 답은 10이다
# ㄹ.
COL1의 값이 NULL인 COL2의 합계를 구하는 SQL =50
따라서 정답은
60, NULL, 10, 50 이다.
직접 실행해보기
# ㄱ.
SELECT SUM(col2)
FROM T1;
# ㄴ.
SELECT SUM(col2)
FROM T1
WHERE col1 > 0;
# ㄷ.
SELECT SUM(col2)
FROM T1
WHERE col1 IS NOT NULL;
# ㄹ.
SELECT SUM(col2)
FROM T1
WHERE col1 IS NULL;
관련 스크립트
create table t1
( col1 number(10),
col2 number(10),
col3 number(10) );
insert into t1 values( 10, null, 10 );
insert into t1 values( null, 50, 10 );
insert into t1 values( 0, 10, 10 );
commit;
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 22> select 문의 6가지절의 실행순서에 대한 기출문제 (2) | 2024.03.22 |
---|---|
<SQLD 21> NULL 값에 대한 이해 (0) | 2024.03.21 |
<SQLD 19> 그룹함수 사용 SQL에 대한 기출문제 (0) | 2024.03.19 |
<SQLD 18> AVG 함수에 대한 기출문제 (4) | 2024.03.18 |
<SQLD 17> LIKE 연산자에 대한 기출문제 (0) | 2024.03.17 |