안녕하세요! 데코입니다!
오늘은 프로그래머스 코딩테스트 연습에 있는 "역순 정렬하기" 문제를 포스팅하려고 합니다!
바로 포스팅 시작할게요! :)
(출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59035)
1. 문제 : 역순 정렬하기(Lv. 1)
2. 문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.
ANIMAL_INS 테이블 구조는 다음과 같으며,
ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는
각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
[ 테이블 구조 ]
NAME | TYPE | NULLABLE |
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요.
이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.
[ 출력 결과 ]
NAME | DATETIME |
Rocky | 2016-06-07 09:17:00 |
Shelly | 2015-01-29 15:01:00 |
Benji | 2016-04-19 13:28:00 |
Jackie | 2016-01-03 16:25:00 |
*Sam | 2016-03-13 11:17:00 |
3. 문제 풀이
# 1안
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC
이번 문제는 너무 명확한 답이 존재해서 1안만 작성했습니다!
1안에 관해 설명하자면!
ANIMAL_INS의 테이블에 존재하는 컬럼들이 [출력 결과]에 나와 있는 컬럼들과 동일하게
'NAME' 컬럼과 'DATETIME' 컬럼을 불러오고
" ORDER BY "를 통해 'ANIMAL_ID' 컬럼의 역순으로 조회 결과가 나타나게 코드를 작성했어요!
(ORDER BY 뒤에 적은 컬럼을 기준으로 DESC은 내림차순 정렬이고 ASC은 오름차순 정렬을 실행하게 합니다!)
4. 데코의 문제 풀이 후기
이번 문제도 정말 쉽네요...!
Lv 1. 문제답게 기초적인 문제를 다루고 있는 게 보입니다!
조회하는 테이블의 컬럼이 적다면 " * "을 이용해서 모든 컬럼을 조회해도 되지만,
조회하는 테이블의 컬럼이 매우 많다면 봐야 하는 특정 컬럼만을 조회해서 보는 게 데이터를 파악하기에 용이합니다!
물론 테이블이 이뤄진 것에 대한 이해가 선행되어야 하지만요!
제가 최근에 SQL을 이용하여 데이터를 불러왔을 때도
특정 컬럼들을 불러오고(SELECT)
ID와 TIME에 대하여 정렬하고 데이터를 살펴보았네요!(ORDER BY)
가장 간단하고 쉽지만 그만큼 많이 이용하는 쿼리에요!
설명이 어려운 부분 혹은 잘 이해가 안 가는 부분은 그리고 더 궁금한 내용이 있다면
언제든지 댓글로 남겨주세요!
빠르게 궁금증을 해결해드릴게요!
공감과 댓글은 큰 힘이 됩니다!
읽어주셔서 감사해요!
또 다른 SQL 문제로 찾아뵐게요!
'Skill Sets > SQL' 카테고리의 다른 글
[SQL] 여러 기준으로 정렬하기(프로그래머스/MySQL) (13) | 2022.12.27 |
---|---|
[SQL] 이름이 없는 동물의 아이디(프로그래머스/MySQL) (6) | 2022.12.26 |
[SQL] 어린 동물 찾기(프로그래머스/MySQL) (12) | 2022.12.25 |
[SQL] 아픈 동물 찾기(프로그래머스/MySQL) (14) | 2022.12.24 |
[SQL] 모든 레코드 조회하기(프로그래머스/MySQL) (10) | 2022.12.22 |