본문 바로가기

SQL

[프로그래머스] SQL-SUM,MAX,MIN 관련 모든 문제

반응형

프로그래머스 SQL SUM,MAX,MIN 문제를 모아서 정리하였습니다.

 

 

 

 

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

 

SELECT MAX(DATETIME) AS '시간'
FROM ANIMAL_INS

 

단어 그대로 MAX를 사용하면 해당 열에서 가장 큰 값을 반환해 준다.
AS는 출력 테이블에 들어갈 이름을 설정해 주는 것이다.
응용 활용 참조

 

 

 

 

문제2. 최솟값 구하기 - 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요

 

SELECT MIN(DATETIME) AS '시간'
FROM ANIMAL_INS

 

MAX와 비슷하게 MIN을 사용하면 해당 열에서 가장 작은 값을 반환해 준다.

 

 

 

 

문제3. 동물 수 구하기 - 동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.

 

SELECT COUNT(*)
FROM ANIMAL_INS

 

COUNT를 사용하면 조건에 데이터의 갯수를 파악할 수 있다.
여기서는 특별한 조건이 없어서 *, 전체의 갯수를 파악했다.

 

 

 

 

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

 

SELECT COUNT(DISTINCT NAME)
FROM ANIMAL_INS

 

DISTINCT를 사용하면 중복된 부분을 하나로 만들어줍니다.
DISTINCT 주의점 - DISTINCT는 한개의 열에 대해서만 적용할 수 밖에 없기에 다른 열의 데이터를 고려하여 제거해야됩니다.
COUNT를 할때 NULL은 자동으로 카운트 하지 않습니다. 다만 따로 조건을 사용하고 싶으면

WHERE NAME IS NOT NULL

같이 적어주면 됩니다. 참고로, NULL은 카운트 하지 않지만, 빈 문자열은 카운트합니다.

반응형