SUM, MAX, MIN > 중복 제거하기
▶테이블 정보
▶문제
동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요.
이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
▶SQL문
SELECT COUNT(DISTINCT(NAME)) AS 이름
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
>> COUNT 함수에 DISTINCT (중복제거 기준 컬럼명) 을 적었다
>>
WHERE 절에 NAME != NULL 을 써서 오류가 났다.
비교연산자 ( != ) 는 NULL에 사용 할 수 없기 때문에 논리연산자 ( IS NOT )를 사용해야 한다고 한다
NAME 컬럼의 값을 비교하는 쿼리인데 NULL은 비교할 대상이 없어서 생긴 오류인 것 같다
논리연산자는 자바의 boolean 처럼 TRUE / FALSE 값을 반환하기 때문에 NULL이 존재하는지 존재하지 않는지 체크 할 수 있어서 쿼리가 정상적으로 실행되었다
▶실행 결과
'Algorithm' 카테고리의 다른 글
[ Java/ 백준 ] 2480.조건문 - 주사위 세개 (0) | 2022.11.04 |
---|---|
[Oracle / 프로그래머스] 입양 시각 구하기(2) - LEVEL, WITH AS (0) | 2022.02.17 |
[Oracle / 프로그래머스 SQL] 입양 시각 구하기(1) - having 절과 쿼리 실행 순서 (0) | 2022.02.15 |
[Oracle / 프로그래머스 SQL 연습] SELECT > 여러 기준으로 정렬하기 (0) | 2022.02.15 |
[Java/백준] 9498.조건문 - 시험성적 (0) | 2021.05.25 |