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"으로 표시해 주세요.