[Programmers] 동물 수 구하기 (MySQL)

문제 📚

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

NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE

가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.

예시

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

ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKE
A399552Dog2013-10-14 15:38:00NormalJackNeutered Male
A379998Dog2013-10-23 11:42:00NormalDiscipleIntact Male
A370852Dog2013-11-03 15:04:00NormalKatieSpayed Female
A403564Dog2013-11-18 17:03:00NormalAnnaSpayed Female

동물 보호소에 들어온 동물은 4마리입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.

count
4

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

문제 링크
본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다.

풀이 ✏️

count 함수를 이용하면 레코드의 개수를 구할 수 있으므로 전체(*) 레코드의 개수를 구하면 된다. 또는 ANIMAL_ID 같은 null이 아닌 값을 가지는 컬럼을 기준으로 계산한다.

SELECT COUNT(*) FROM ANIMAL_INS
#or
SELECT COUNT(ANIMAL_ID) FROM ANIMAL_INS
  • COUNT() 알아보기
    where 절의 조건에 해당하는 레코드의 수를 반환 (일치하는 값이 없으면 0)
    사용 형태는 아래와 같으며, count()의 매개변수로는 4가지가 들어갈 수 있음.

    COUNT(*)
    COUNT( [ ALL | DISTINCT ] expression )

    - ALL : 모든 값에 적용, NULL 이 아닌 값의 수를 반환
    - DISTINCT : 중복 값 무시, 유니크하며 NULL이 아닌 값의 수를 반환
    - * : NULL 포함 여부에 관계없이 대상 테이블의 모든 행을 카운트
    - expression : 단일 상수, 변수, 스칼라 함수 또는 열 이름으로 구성된 식이며 값을 다른 값과 비교하는 SQL 쿼리도 가능.
    하지만, 집계 함수 및 하위 쿼리는 허용되지 않음.

좋은 웹페이지 즐겨찾기