문제설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.
입출력 예
예를 들어, ANIMAL_INS 테이블이 다음과 같다면
- 이름을 사전 순으로 정렬하면 다음과 같으며, 'Jewel', 'Raven', 'Sugar'
- 'Raven'이라는 이름을 가진 개와 고양이가 있으므로, 이 중에서는 보호를 나중에 시작한 개를 먼저 조회합니다.
따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
코드 설명
SELECT ANIMAL_ID, NAME, DATETIME
이 부분은 결과 집합에 포함할 열을 지정합니다. 여기서는 ANIMAL_ID, NAME, DATETIME 열이 선택되었습니다.
이 열들은 ANIMAL_INS 테이블에서 가져옵니다.
FROM ANIMAL_INS
데이터를 가져올 테이블을 지정합니다. 이 쿼리에서는 ANIMAL_INS 테이블을 사용합니다.
ORDER BY NAME, DATETIME DESC:
이 절은 결과 집합을 정렬합니다. 먼저 NAME 열을 기준으로 오름차순으로 정렬합니다(ASC가 명시되지 않았으므로 기본값). 그 다음으로는 DATETIME 열을 기준으로 내림차순으로 정렬합니다(DESC가 명시됨).
이는 각각의 고유한 NAME에 대해 결과가 정렬되며, 동일한 NAME을 가진 레코드는 DATETIME 열을 기준으로 최신 레코드가 먼저 나타납니다.
소스코드&결과
소스코드
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC;
결과
'Coding Test > 프로그래머스' 카테고리의 다른 글
[JavaScript] 멘토링 (0) | 2023.11.25 |
---|---|
[MySQL] 상위 n개 레코드 (2) | 2023.11.15 |
[MySQL] 나이 정보가 없는 회원 수 구하기 (2) | 2023.11.01 |
[Java, JavaScript] 나누어 떨어지는 숫자 배열 (0) | 2023.08.21 |
[JavaScript] 배열 만들기 3 (0) | 2023.08.15 |