SQL 고득점 Kit - (2) SUM, MAX, MIN
프로그래머스 SQL 고득점 Kit 문제풀이 2편 (SUM, MAX, MIN 편)
문제설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
NAME | TYPE | NULLABLE |
---|---|---|
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 |
1. 최대값 구하기 (LEVEL 1)
가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
풀이
SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS
- SELECT 뒤에 MAX(DATETIME) 을 넣어, 날짜의 최대값을 구한다. 날짜는 시간이 지날수록 큰 값으로 간주되기 때문에 최대값을 활용한다.
- AS 를 활용해서 출력될 컬럼명을 '시간' 으로 바꿔준다.
2. 최솟값 구하기 (LEVEL 2)
동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
풀이
SELECT MIN(DATETIME) AS 시간 FROM ANIMAL_INS
- 1번에서 MAX를 MIN으로 바꿔주면 된다.
3. 동물 수 구하기 (LEVEL 2)
동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.
풀이
SELECT COUNT(*) AS count FROM ANIMAL_INS
- COUNT(*) 를 이용해서 전체 데이터의 수를 출력할 수 있다.
- COUNT(컬럼명)을 이용해서 구할 수 있지만, 만약 그 특정 컬럼에 결측치가 존재할 경우 그 데이터를 제외하고 COUNT하기 때문에 *을 사용하는 것이 안전하다.
4. 중복 제거하기 (LEVEL 2)
동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
풀이
SELECT COUNT( DISTINCT NAME ) AS count FROM ANIMAL_INS
- DISTINCT 옵션을 이용할 경우 중복 값을 제거한 유일한 값만을 COUNT할 수 있다.
- 이름 열의 결측치인 경우 집계하지 않기 때문에 COUNT() 함수 안에 NAME이라는 특정 컬럼명을 집어넣는다.
Author And Source
이 문제에 관하여(SQL 고득점 Kit - (2) SUM, MAX, MIN), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@junhyeok-5/SQL-고득점-Kit-2-SUM-MAX-MIN저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)