본문 바로가기
일일 문제 풀이/HackerRank

[SQL] 해커랭크 HackerRank 문제 풀이 Higher Than 75 Marks

by 엘리는 코딩 마스터 2025. 3. 8.

[SQL] hakerrank 문제 풀이

문제1
아웃풋

문제

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;

배운 점

  1. 처음에는 substr(name, 1, 3) 이렇게 뽑으려고 했는데 생각해보니까 마지막 3문자였다.
  2. 그래서 마지막 3문자를 어떻게 할까 하다가 right 함수를 발견했다.

RIGHT(string, N)

문자열의 마지막 N글자를 추출하는 함수

 

  • string: 문자열 또는 컬럼명입니다. 이 문자열에서 마지막 N글자를 추출합니다.
  • N: 추출할 문자 수입니다. N은 양의 정수여야 하며, string의 길이를 초과할 수 없습니다.