호기심 많은 분석가

[MySQL] 프로그래머스 Coding_Test / SELECT (2) 본문

Coding/Coding Test & Algorithm

[MySQL] 프로그래머스 Coding_Test / SELECT (2)

DA Hun 2021. 5. 6. 16:26

포스팅 개요

 SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. 그중 SELECT 파트의 문제들을 모아두었다.

2021.05.06 - [Coding Test & Algorithm] - [SQL] 프로그래머스 Coding_Test SELECT (1) 포스팅에 이어 다음 문제들도 다뤄보겠습니다.


포스팅 본문

 아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다.

TABLE 설명

SELECT TABLE


5. 동물의 아이디와 이름

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

동물의 아이디와 이름

SELECT AI.ANIMAL_ID, AI.NAME FROM ANIMAL_INS AS AI ORDER BY AI.ANIMAL_ID

 앞서 다뤘듯 ORDER BY를 사용하면 정렬이 가능합니다.


6. 여러 기준으로 정렬하기

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

여러 기준으로 정렬하기

SELECT AI.ANIMAL_ID, AI.NAME, AI.DATETIME
FROM ANIMAL_INS AS AI ORDER BY AI.NAME ASC, AI.DATETIME DESC;

 ORDER BY를 여러 번 써야 할 때는 각각의 COLUMN 명 옆에 ASC(오름차순), DESC(내림차순)을 입력해줌으로써 조건을 설정할 수 있다.


7. 상위 n개 레코드

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

상위 n개 레코드

SELECT AI.NAME FROM ANIMAL_INS AS AI
ORDER BY AI.DATETIME LIMIT 1 

 DATETIME으로 정렬해준 뒤 NAME으로 추출하고 LIMIT 문법으로 1개만 추출해냈습니다.


 이상으로 프로그래머스 SQL 코딩 테스트의 SELECT 파트의 문제들을 풀어보았습니다. LEVEL 1의 문제들이라 그런지 난이도는 높지 않았지만, SQL 문법을 복습할 수 있어 좋았습니다. 다음 SUM, MAX, MIN 파트에서 만나 뵙겠습니다. :)