[SQL] hakerrank 문제 풀이
문제
Query the Name of any student in STUDENTS who scored higher than Marks. Order your output by the last three characters of each name. If two or more students both have names ending in the same last three characters (i.e.: Bobby, Robby, etc.), secondary sort them by ascending ID.
한국어 버전
STUDENTS 테이블에서 75점보다 점수가 높은 학생의 Name 출력하라.
각 이름의 마지막 3개 문자로 정렬하라.
만약 마지막 3개 문자 이름이 같다면 ID를 기준으로 오름차순으로 정렬하라.
인풋
이름 열에는 오직 대문자와 소문자만 포함된다.
예시 설명
오직 Ashley, Julia, Belvet만 75점보다 높다.
만약 그들의 각각의 마지막 3개 문자를 보면 중복되지 않으니까
'ley' < 'lia' < 'vet' 순으로 정렬된다.
정답
select name
from students
where marks > 75
order by right(name,3), id;
배운 점
- 처음에는 substr(name, 1, 3) 이렇게 뽑으려고 했는데 생각해보니까 마지막 3문자였다.
- 그래서 마지막 3문자를 어떻게 할까 하다가 right 함수를 발견했다.
RIGHT(string, N)
문자열의 마지막 N글자를 추출하는 함수
- string: 문자열 또는 컬럼명입니다. 이 문자열에서 마지막 N글자를 추출합니다.
- N: 추출할 문자 수입니다. N은 양의 정수여야 하며, string의 길이를 초과할 수 없습니다.
'일일 문제 풀이 > HackerRank' 카테고리의 다른 글
[SQL] 해커랭크 HackerRank 문제 풀이 Employee Salaries (0) | 2025.03.10 |
---|---|
[SQL] 해커랭크 HackerRank 문제 풀이 Employee Names 정답 (0) | 2025.03.09 |
[SQL] HackerRank 해커랭크 문제 풀이 Weather Observation Station 12 (0) | 2025.03.07 |
[SQL] HackerRank Weather Observation Station 11 hankerrank 문제풀이 정답 (0) | 2025.03.06 |
[SQL] HackerRank Weather Observation Station 10 문제풀이 정답 (0) | 2025.03.05 |