_

스파르타 코딩클럽의 SQL 강의 수강 후, 조금 더 연습이 필요하다고 생각해 프로그래머스 SQL 고득점 kit를 풀어보게 됐다.

아래의 모든 답은 직접 풀어본 후 적은 답입니다. SQL 특성상 query가 다르더라도 같은 결과에 도출됐다면 모든 query는 정답이 될 수 있습니다.


문제 링크 👇

 

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

프로그래머스 문제 키트 👇

6개의 세트


SELECT

  • 모든 레코드 조회하기

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

SELECT * 
from animal_ins
order by animal_id

 

  • 역순 정렬하기

동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. 

SELECT name, datetime
from animal_ins
order by animal_id desc

 

  • 아픈 동물 찾기

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

select animal_id, name
from animal_ins
where intake_condition = 'sick'
order by animal_id
  • 어린 동물 찾기

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

* INTAKE_CONDITION이 Sick 인 경우를 뜻함

select animal_id, name
from animal_ins
where intake_condition = 'sick'
order by animal_id

 

  • 동물의 아이디와 이름

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

select animal_id, name
from animal_ins

 

  • 여러 기준으로 정렬하기

동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.

select animal_id, name, datetime
from animal_ins
order by name,datetime desc

 

  • 상위 n개 레코드

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

select name
from animal_ins
order by datetime
limit 1

SUM, MAX, MIN

  • 최댓값 구하기

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

select datetime
from animal_ins
order by datetime desc
limit 1

 

  • 최솟값 구하기

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

select datetime
from animal_ins
order by datetime
limit 1

 

  • 동물 수 구하기

동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.

select count(*)
from animal_ins

 

  • 중복 제거하기

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

select count(distinct(name))
from animal_ins
where name is not null

 

  • 고양이와 개는 몇 마리 있을까

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

select animal_type, count(*)
from animal_ins
group by animal_type
order by animal_type

"고양이를 개보다 먼저 조회해주세요"때문에 order by 조건이 있어야만 정답으로 처리된다.

아래처럼 order by 조건이 없어도 결과상의 차이는 없다.

select animal_type, count(*)
from animal_ins
group by animal_type

 


 

4주차 강의 기록 (2) - [스파르타코딩클럽] 엑셀보다 쉬운 SQL - subquery, with, substring_index, substring, 문

스파르타코딩클럽 엑셀보다쉬운 SQL (4주) 33기 4주차 - 수강일자 211003 With subquery 를 각각 써주는 게 아니라 table로 명명시켜서 쿼리문 작성 편의 및 가시성을 높인다. 구조 예시 ( subquery )를 하나의

slowslow.tistory.com

 

+ Recent posts