-
프로그래머스[SQL 잡히는대로 다풀기] - 모든 레코드 조회하기, 역순 정렬하기, 아픈 동물 찾기, 어린 동물 찾기, 동물의 아이디와 이름, 여러 기준으로 정렬하기, 상위 n개 레코드Database 2021. 8. 6. 00:17728x90반응형
모든 레코드 조회하기
문제 url : https://programmers.co.kr/learn/courses/30/lessons/59034
문제 내용 : 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요.
풀이 :
- 모든 레코드를 뽑아야 한다. → select *
- 특정 컬럼으로 조회한다. → order by [Column 이름]
SELECT * FROM ANIMAL_INS order by ANIMAL_ID
역순 정렬하기
문제 url : https://programmers.co.kr/learn/courses/30/lessons/59035
문제 내용 : 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요.
풀이 :
- 특정 컬럼들만 뽑는다.
- 역순 → Order By [Column 이름] desc
-- 코드를 입력하세요 SELECT NAME, DATETIME from ANIMAL_INS Order by ANIMAL_ID DESC
아픈 동물 찾기
문제 url : https://programmers.co.kr/learn/courses/30/lessons/59036
문제 내용 : 동물 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.
풀이 :
- 문자열 비교 → 'Sick'이라는 데이터와 비교하기 위해서 Like 연산을 쓴다.
SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION like 'Sick' order by ANIMAL_ID
어린 동물 찾기
문제 url : https://programmers.co.kr/learn/courses/30/lessons/59037
문제 내용 : 동물 보호소에 들어온 동물 중 젊은 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.
풀이 :
- 'Aged' 가 늙은 동물이기 때문에 'Aged'가 아닌 동물을 찾는다. → Not In() 을 사용한다.
-- 코드를 입력하세요 SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION not in('Aged') order by ANIMAL_ID
동물의 아이디와 이름
문제 url : https://programmers.co.kr/learn/courses/30/lessons/59403
문제 내용 : 동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.
-- 코드를 입력하세요 SELECT ANIMAL_ID, NAME from ANIMAL_INS order by ANIMAL_ID
여러 기준으로 정렬하기
문제 url : https://programmers.co.kr/learn/courses/30/lessons/59404
문제 내용 : 동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.
풀이 :
- 여러개의 컬럼으로 정렬하기 위해서는 정렬할 순서대로 써준다.(생략하면 asc, desc는 내림차순)
-- 코드를 입력하세요 SELECT ANIMAL_ID,NAME,DATETIME from ANIMAL_INS order by name, datetime desc
상위 n개 레코드
문제 url : https://programmers.co.kr/learn/courses/30/lessons/59405
문제 내용 : 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.
풀이 :
Mysql - 상위 N개는 limit 연산으로 개수를 세어줄 수 있다.
Oracle - rownum을 활용.
-- 코드를 입력하세요 SELECT NAME from ANIMAL_INS order by DATETIME limit 1
반응형'Database' 카테고리의 다른 글