- 모든 레코드 조회하기
동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회
SELECT *FROM ANIMAL_INS ORDER BY ANIMAL_ID;
- 역순 정렬하기
동물보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회하는 SQL문을 작성 이때 결과는 아이디 순으로 조회
SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;
- 아픈 동물 찾기
동물보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회하는 SQL문을 작성 이때 결과는 아이디 순으로 조회
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION='Sick' ORDER BY ANIMAL_ID;
- 어린 동물 찾기
동물 보호소에 들어온 동물 중 젊은 동물의 아이디와 이름을 조회하는 SQL문 작성 이때 결과는 아이디 순으로 조회
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != 'Aged' ORDER BY ANIMAL_ID;
- 동물의 아이디와 이름
동물 보호소에 들어온 모든 동물의 아아디와 이름을 ANIMAL_ID 순으로 조회
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID;
- 여러 기준으로 정렬하기
동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호시작일을 이름순으로 조회 단, 이름이 같은 동물중에서는 보호를 나중에 시작한 동물을 먼저 출력
SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME, DATETIME DESC;
- 상위 N개 레코드
동물보호소에 가장 먼저 들어온 동물의 이름을 조회
SELECT *FROM
(
SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME
)WHERE ROWNUM=1;
- 최댓값 구하기
가장 최근에 들어온 동물은 언제 들어왔는지 조회
SELECT MAX(DATETIME) FROM ANIMAL_INS;
- 최솟값 구하기
동물보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회
SELECT MIN(DATETIME) FROM ANIMAL_INS;
- 동물 수 구하기
동물보호소에 동물이 몇마리 들어왔는지 조회
SELECT COUNT(*) FORM ANIMAL_INS;
- 중복 제거하기
동물 보호소에 들어온 동물의 이름은 몇개인지 조회 이때 이름이 NULL일 경우는 집계하지 않으며 중복되는 이름은 하나로 친다.
SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS WHERE NAME != 'NULL';
- 고양이와 개는 몇마리 있을까
동물 보호소에 들어온 동물중 고양이와 개가 각각 몇마리인지 조회 이때 고양이를 개보다 먼저 조회
SELECT ANIMAL_TYPE, COUNT(*) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE;
- 동명 동물 수 찾기
동물보호소에 들어온 둥물이름 중 두번이상 쓰인 이름과 해당이름이 쓰인 횟수를 조회 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름순으로 출력
SELECT NAME, COUNT(*) FROM ANIMAL_INS WHERE NAME != 'NULL' GROUP BY NAME HAVING COUNT(NAME) >1 ORDER BY NAME;
- 입양 시각 구하기(1)
09:00부터 19:59까지 각 시간대 별로 입양이 몇건이나 발생했는지 조회 이때 결과는 시간대 순으로 정렬
SELECT TO_CHAR(DATETIME,'HH24'), COUNT(*) FROM ANIMAL_OUTS WHERE TO_CHAR(DATETIME,'HH24') BETWEEN 9 AND 19 GROUP BY TO_CHAR(DATETIME,'HH24') ORDER BY TO_CHAR(DATETIME,'HH24');
- 입양 시각 구하기(2)
0시부터 23시까지 각 시간대별로 입양이 몇건이나 발생했는지 조회 이때 결과는 시간대 순으로 정렬
SELECT A.HOUR, NVL(B.COUNT,0) AS COUNT FROM
(
SELECT LEVEL-1 AS HOUR FROM DUAL CONNECY BY LEVEL <=24
)A,
(
SELECT TO_CAHR(DATETIME,'HH24') AS HOUR, COUNT(*) FROM ANIMAL_OUTS GROUP BY TO_CHAR(DATETIME,'HH24') ORDER BY TO_CHAR(DATETIME,'HH24')
)B WHERE A.HOUR=B.HOUR(+) ORDER BY A.HOUR;