코드 깎는 PM

프로그래머스 SQL level 2 - #3 중복 제거하기 본문

코딩 테스트/SQL (SQLD & SQLP)

프로그래머스 SQL level 2 - #3 중복 제거하기

PM스터 2023. 2. 8. 01:47
반응형

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

출처: https://link.coupang.com/a/bqfHaS

 

2024 이기적 SQL 개발자 이론서+기출문제

COUPANG

www.coupang.com


1. 문제 설명 

문제 설명

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

NAMETYPENULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.

예시

예를 들어 ANIMAL_INS 테이블이 다음과 같다면

ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A562649 Dog 2014-03-20 18:06:00 Sick NULL Spayed Female
A412626 Dog 2016-03-13 11:17:00 Normal *Sam Neutered Male
A563492 Dog 2014-10-24 14:45:00 Normal *Sam Neutered Male
A513956 Dog 2017-06-14 11:54:00 Normal *Sweetie Spayed Female

보호소에 들어온 동물의 이름은 NULL(없음), *Sam, *Sam, *Sweetie입니다. 이 중 NULL과 중복되는 이름을 고려하면, 보호소에 들어온 동물 이름의 수는 2입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

count
2

※ 컬럼 이름(위 예제에서는 count)은 일치하지 않아도 됩니다.


2. 정답

SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS;


3. 코드 설명

  • SELECT COUNT(DISTINCT NAME)
    • NAME 칼럼을 중복제거하여 센다.
      • DISTINCT함수는 중복을 제거한다.
      • COUNT COLUMN_NAME 형식을 사용하면 자동적으로 NULL인 값을 제거하고 집계한다.  
  • FROM ANIMAL_INS;
    • ANIMAL_INS테이블에서 추출하라.
반응형
Comments