티스토리 뷰

1. SELECT 

 

(1) 모든 레코드 조회하기

SELECT * 
FROM ANIMAL_INS;

 

(2) 역순 정렬하기

SELECT NAME, DATETIME 
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;

 

(3) 아픈 동물 찾기

SELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS 
WHERE INTAKE_CONDITION='SICK'
ORDER BY ANIMAL_ID;

 

(4) 어린 동물 찾기

SELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS
WHERE INTAKE_CONDITION!='Aged'
ORDER BY ANIMAL_ID;

 

(5) 동물의 아이디와 이름

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 

(6) 여러 기준으로 정렬하기

- 이름순으로 조회 , 단 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 함

SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC;

 

(7) 상위 N개 레코드

- 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성

SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME=(
SELECT MIN(DATETIME)
FROM ANIMAL_INS
);

 

 

 

2. SUM, MAX, MIN

(1) 최댓값 구하기

- 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성

SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS;

 

(2) 최솟값 구하기

- 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성

SELECT MIN(DATETIME) AS 시간
FROM ANIMAL_INS;

 

(3) 동물 수 구하기

- 동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성

SELECT COUNT(*) AS count
FROM ANIMAL_INS;

 

(4) 중복 제거하기

- 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.

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

 

 

3. GROUP BY

(1) 고양이와 개는 몇 마리 있을까

- 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요.

SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
HAVING ANIMAL_TYPE IN ('Cat', 'Dog')
ORDER BY ANIMAL_TYPE ASC;

 

(2) 동명 동물 수 찾기

- 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.

SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING NAME IS NOT NULL AND COUNT>1
ORDER BY NAME;

 

(3) 입양 시각 구하기 (1)

- 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.

SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN 9 AND 19
GROUP BY HOUR
ORDER BY HOUR;

 

 

4. IS NULL

(1) 이름 없는 동물의 아이디

- 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL;

 

(2) 이름 있는 동물의 아이디

- 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID;

 

(3) NULL 처리하기

SELECT ANIMAL_TYPE, IFNULL(NAME, "No name") As NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 

5. String, Date

(1) 루시와 엘라 찾기

- 동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요.

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ("Lucy", "Ella", "Pickle", "Rogan", "Sabrina", "Mitty")
ORDER BY ANIMAL_ID;

 

(2) 이름에 el이 들어가는 동물 찾기

- 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 이름 순으로 조회해주세요. 단, 이름의 대소문자는 구분하지 않습니다.

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME like "%el%" AND ANIMAL_TYPE="Dog"
ORDER BY NAME;

 

(3) 중성화 여부 파악하기

- 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.

SELECT ANIMAL_ID, NAME, 
CASE 
WHEN SEX_UPON_INTAKE Like '%Neutered%' or SEX_UPON_INTAKE Like '%Spayed%'
THEN 'O'
ELSE 'X'
END as 중성화
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 

(4) DATETIME에서 DATE로 형 변환

- ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,"%Y-%m-%d") AS 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

 

 

'알고리즘' 카테고리의 다른 글

프로그래머스 - 직사각형 별찍기(C++)  (0) 2021.05.05
최대 부분 증가 수열 [DP]  (0) 2021.04.12
계단오르기 [DP]  (0) 2021.04.06
네트워크 선 자르기 [DP]  (0) 2021.03.29
90. 라이온킹 심바[BFS]  (0) 2021.03.24
최근에 올라온 글
Total
Today
Yesterday