Sparta_coding_club/SQL 코드카타

도식화 연습 - SQL 코드카타 #1 ~ #15

데이터분석쇼니 2024. 1. 8. 16:04

 

 들어가며

  주어진 SQL 코드카타 문제를 풀고나서 느낀 점은 단순히 문제를 풀어내는 것도 좋지만
  유사한 상황 그리고 다른 어려운 문제들이 나왔을 때 스스로 풀어내는 힘을 키우는 것이라고 생각한다.

  튜터님도 문제를 도식화하는 것을 연습해보라고 말씀을 주셔서 순서도 라는 것을 찾아보고,
  딱 정해진 순서도가 없다는 것을 깨달은 후 직접 나만의 순서도를 만드는 연습을 해보기로 했다.

  혹시라도 순서도를 구성하는데 어려운 일이 생기면 그것을 가지고 멘토님께 한번 문의를 드려봐서 수정을 해야겠다.

 


|  이름이 있는 동물의 아이디

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

 

 

|  역순 정렬하기

문제 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 
이때 결과는 ANIMAL_ID 역순으로 보여주세요. 
지문해석 SELECT  모든 동물의 이름(NAME),  보호시작일(DATETIME)
FROM ANIMAL_INS
ORDER_BY ANIMAL_ID  DESC  역순 

 

 

 

|  중복 제거하기

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

지문해석 SELECT 보호소에 들어온 동물의 이름갯수  COUNT(NAME)
중복되는 이름은 하나로 DISTINCT(NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL

 

 

|  동물의 아이디와 이름

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

SELECT 모든 동물의
아이디 ANIMAL_IS, 이름 NAME 
FROM ANIMAL_INS
ORDER BY  ANIMAL_ID

 

|  동물 수 구하기

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

SELECT 동물이 몇 마리 들어왔는지  COUNT(*)
FROM ANIMAL_INS

 

|  동명  동물 수 구하기

문제 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.
지문해석
SELECT - 두 번 이상 쓰인 이름  NAME 
- 해당 이름이 쓰인 횟수 COUNT 
FROM ANIMAL_INS
WHERE 이름이 없는 동물은 집계에서 제외하며   NAME IS NOT NULL 
GROUP BY  NAME 
 HAVING COUNT(*) >= 2
ORDER BY  결과는 이름 순으로 조회해주세요    NAME 

 

 

 

|  아픈 동물 찾기

문제 동물 보호소에 들어온 동물 중 아픈 동물(INTAKE_CONDITION이 Sick 인 경우를 뜻함)의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.
지문해석
SELECT - 아이디
- 이름
FROM ANIMAL_INS
WHERE 아픈 동물  INTAKE_CONTION = 'SICK'
ORDER BY  아이디

 

|  상위 N개 레코드

문제 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.
지문해석
SELECT - 이름
FROM ANIMAL_INS
ORDER BY 들어온 순서대로 오름차순  
DATETIME ASC
LIMIT 1마리 

 

|  최솟값 구하기

문제 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
지문해석
SELECT - 언제 들어왔는지  DATETIME
FROM ANIMAL_INS
ORDER BY 들어온 순서대로 오름차순  
DATETIME ASC
LIMIT 1마리 

 

 

|  어린 동물 찾기

문제 동물 보호소에 들어온 동물 중 젊은 동물(INTAKE_CONDITION이 Aged가 아닌 경우를 뜻함)의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.
지문해석
SELECT - 아이디, 이름
ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE 젊은 동물
INTAKE_CONDITION <> 'AGED'
ORDER BY ANIMAL_ID

 

|  여러 기준으로 정렬하기

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

 

 

|  이름에 EL이 들어가는 동물 찾기

문제 보호소에 돌아가신 할머니가 기르던 개를 찾는 사람이 찾아왔습니다. 이 사람이 말하길 할머니가 기르던 개는 이름에 'el'이 들어간다고 합니다. 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 이름 순으로 조회해주세요. 단, 이름의 대소문자는 구분하지 않습니다.

 


 

|  나이 정보가 없는 회원 수 구하기

USER_INFO 테이블에서 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문을 작성해주세요.
이때 컬럼명은 USERS로 지정해주세요.

 

 

|   NULL 처리하기

입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.