본문 바로가기

Coding Test

(SQL > COUNT,DISTINCT Lev2) : 19일차 중복 제거하기

 

 

 

☑️ 내가 쓴 답(오답)

✔ 체크 할 부분

   1) where절에서 subquery는 단 하나의 결과만 반환해야 함

-- 00:40
-- 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성
-- 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
SELECT COUNT(NAME)
FROM ANIMAL_INS
WHERE NAME = (
    SELECT NAME
    FROM ANIMAL_INS
    WHERE NAME IS NOT NULL
    GROUP BY NAME
    )

 

 

☑️ 다른 사람의 풀이(정답)

✔ 체크 할 부분

    1) DISTINCT 명령어 사용하여, 같은 NAME 값을 제거해주기 (가장 가독성 좋음)

SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL

 

 

     2) from절에서 별칭 alias 필수 (별칭 없어서 에러)

-- ❌ 별칭이 없어서 오류 발생
SELECT COUNT(NAME)
FROM (
    SELECT DISTINCT NAME
    FROM ANIMAL_INS
    WHERE NAME IS NOT NULL
);

 

 

     3) from절에서 별칭 alias 포함(정답)

SELECT COUNT(*)
FROM (
    SELECT DISTINCT NAME
    FROM ANIMAL_INS
    WHERE NAME IS NOT NULL
) AS COUNT