SELECT * FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
SELECT NAME, DATETIME FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'Sick'
ORDER BY ANIMAL_ID;
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> 'Aged' -- != → <>
ORDER BY ANIMAL_ID;
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS
ORDER BY NAME ASC, DATETIME DESC;
SELECT NAME FROM
(SELECT NAME FROM ANIMAL_INS
ORDER BY DATETIME) -- 인라인뷰 (FROM 절에 사용한 서브쿼리)
WHERE ROWNUM < 2;
-- 서브쿼리(쿼리문 안에 쿼리문)
SELECT DATETIME FROM
(SELECT DATETIME FROM ANIMAL_INS
ORDER BY DATETIME DESC)
WHERE ROWNUM < 2;
-- 인라인뷰 말고 MAX 집계함수로도 해결가능 ↓
SELECT MAX(DATETIME) FROM ANIMAL_INS;
SELECT MIN(DATETIME) FROM ANIMAL_INS;
SELECT COUNT(*) FROM ANIMAL_INS;
SELECT COUNT(DISTINCT NAME) FROM ANIMAL_INS -- DISTINCT 중복제거
WHERE NAME IS NOT NULL; -- NAME 컬럼의 NULL값 제외
-- 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회
-- 고양이를 개보다 먼저 조회
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS COUNT FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE;
-- GROUP BY는 반드시 집계함수, 그룹함수와 함께 사용
-- 집계를 위한 GROUP BY 기준 컬럼 존재
-- 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회
-- 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회
SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME;
데이터 분석함수 (집계함수, 그룹함수, 윈도우함수)
https://autumn-irene.tistory.com/67