프로그래머스 SQL 고득점 Kit

Chan·2022년 1월 29일

Oracle

목록 보기
16/17

SELECT


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; 
 -- 서브쿼리(쿼리문 안에 쿼리문)

SUM, MAX, MIN

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값 제외

GROUP BY

-- 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회
-- 고양이를 개보다 먼저 조회
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

profile
Backend Web Developer

0개의 댓글