본문으로 바로가기

[프로그래머스] Oracle : SUM, MAX, MIN

category 알고리즘/SQL 2022. 1. 10. 15:36
728x90

 

최댓값 구하기

 

- 가장 최근에 들어왔다면 DATETIME이 가장 늦은 상태의 값을 구하는 것이므로

집계함수의 MAX를 이용하여 답을 구하면 된다.

SELECT MAX(DATETIME) as 시간 FROM ANIMAL_INS;

 

최솟값 구하기

 

SELECT MIN(DATETIME) AS 시간 FROM ANIMAL_INS;

 

동물 수 구하기

 

- 동물의 수를 구하려면 동물마다 고유하게 구별할 수 있는 FK가 있어야 하는데 테이블에서 확인할 수 있는

바로는 ANIMAL_ID가 FK로 판단되어 이를 통하여 값을 구하였다.

SELECT COUNT(ANIMAL_ID) AS count FROM ANIMAL_INS;

 

중복 제거하기

 

- 중복을 제거하기 위해서는 DISTINCT 키워드를 사용해야 하고, 이 중에서 NAME은 NULL인 경우는 집계하지

않으므로 아래와 같이 작성하면 된다.

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

 

(참고로 문제에서 컬럼이름은 일치하지 않아도 된다 했으므로 as 키워드는 사용하지 않아도 된다.)

728x90