오늘 할 일: 갈고 닦기
article thumbnail

※ 모든 코드는 Oracle을 기준으로 작성되었습니다.

 

1. 최댓값 구하기

문제 설명

Solution

1
2
3
4
5
SELECT DATETIME
FROM (SELECT DATETIME
     FROM ANIMAL_INS
    ORDER BY DATETIME DESC)
WHERE ROWNUM = 1;

코드해석

서브쿼리를 활용하여 보호 시작일을 내림차순 정렬합니다. 날짜를 내림차순 정렬하게 되면 가장 최근 날짜가 맨 위에 위치하게 됩니다. 정렬된 테이블에서 행 번호가 1인 행을 추출합니다.

2. 최솟값 구하기

문제 설명

Solution

1
2
3
4
5
SELECT DATETIME
FROM (SELECT DATETIME
     FROM ANIMAL_INS
    ORDER BY DATETIME)
WHERE ROWNUM = 1;

코드해석

1번과 반대되는 문제입니다. 역시 서브쿼리를 활용하여 보호 시작일을 오름차순 정렬합니다. 날짜를 오름차순 정렬하면 가장 오래된 날짜가 맨 위에 위치하게 됩니다. 

3. 동물 수 구하기

문제 설명

Solution

1
2
SELECT COUNT(*)
FROM ANIMAL_INS;

코드해석

해당 테이블에 행이 몇 개인지를 묻는 질문이나 마찬가지입니다. 전체 행의 개수는 COUNT(*)를 사용하여 집계할 수 있습니다.

4. 중복 제거하기

문제 설명

Solution

1
2
SELECT COUNT (DISTINCT NAME)
FROM ANIMAL_INS;

코드해석

COUNT 함수를 사용시 DISTINCT를 함께 사용하면 중복을 제거하여 특정 행 내에서 유일한(Unique한) 값의 개수를 집계할 수 있습니다. 이때 NULL인 경우는 집계하지 않습니다.