JaeniWorld

[SQL] 프로그래머스 7daySQL챌린지 day1~day4 본문

코테준비/문제풀이

[SQL] 프로그래머스 7daySQL챌린지 day1~day4

jaeni 2020. 7. 11. 21:44
반응형

Day1 - 1

동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

SELECT *
from ANIMAL_INS
ORDER BY ANIMAL_ID;

 

원 레코드들이 ANIMAL_ID 순으로 정렬된지 확인이 되지 않아서 ORDER BY절을 활용하여 한번 더 정렬

 

Day1 - 2

동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

SELECT NAME, DATETIME 
FROM ANIMAL_INS 
ORDER BY ANIMAL_ID DESC;

 


 

DAY2 - 1

동물 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

SELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS 
WHERE UPPER(INTAKE_CONDITION) = 'SICK';

 

DAY2- 2

동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

SELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS 
WHERE INTAKE_CONDITION NOT IN ('Aged') 
ORDER BY ANIMAL_ID;

 


DAY3 - 1

동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.

select datetime as 시간 
from animal_ins 
order by datetime LIMIT 1

 

학원 다니면서 배운 건 Oracle이라서 from절에서 정렬하고 rownum으로 하려고 했는데 이거는 Mysql이여서 LIMIT 함수를 사용하였다.

 

LIMIT 함수

-결과 행을 제한하기 위한 함수로써 Mysql에서 사용됨

-oracle의 rownum, sql-server의 top함수와 비슷

- where이나 order by절에서 사용하며 숫자만큼의 행을 검색함

 

DAY3 - 2

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

SELECT ANIMAL_ID 
from animal_ins 
where name is NULL -- or name like "*%" 
order by ANIMAL_ID

 

 


DAY4 - 1

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

SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) 
FROM ANIMAL_INS 
GROUP BY ANIMAL_TYPE 
ORDER BY ANIMAL_TYPE

 

 

DAY4 - 2

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

SELECT NAME, COUNT(NAME) 
FROM ANIMAL_INS 
GROUP BY NAME HAVING COUNT(NAME)>1

 

 

 

반응형
Comments