> 개발-IT-인터넷/> SQL

[해커랭크(HackerRank) SQL 풀이] - Higher Than 75 Marks

jini:) 2023. 11. 21. 10:17
728x90
반응형
해커 랭크 - https://www.hackerrank.com/
Prepare > SQL > Basic Select > Higher Than 75 Marks

 

 

HackerRank - Online Coding Tests and Technical Interviews

HackerRank is the market-leading coding test and interview solution for hiring developers. Start hiring at the pace of innovation!

www.hackerrank.com

 

 

STUDENTS 테이블에서 점수가 75점보다 높은 학생의 이름을 조회합니다.

각 이름의 마지막 세 글자를 기준으로 정렬합니다.

둘 이상의 학생의 이름이 마지막 세 글자가 같다면 (예: Bobby, Robby 등) ID를 기준으로 오름차순으로 2차 정렬합니다.

 

Input Format

STUDENTS 테이블은 다음과 같이 설명됩니다.

[출처] https://www.hackerrank.com/challenges/more-than-75-marks/problem

 

Name에는 대문자(A-Z)와 소문자(a-z) 알파벳만 포함되어 있습니다.

 

Sample Input

[출처] https://www.hackerrank.com/challenges/more-than-75-marks/problem

 

Sample Output

Ashley
Julia
Belvet

 

Explanation

Ashley, Julia, Belvet은 점수가 75점 보다 높습니다.

이름의 마지막 세 글자를 보면, 중복된 것이 없고, 'ley' < 'lia' < 'vet' 순서대로 나열됩니다.

 

반응형

 

MySQL
SELECT  Name
FROM    STUDENTS
WHERE   Marks > 75
ORDER BY RIGHT(Name, 3) ASC, ID ASC;

 

Oracle
SELECT  Name
FROM    STUDENTS
WHERE   Marks > 75
ORDER BY SUBSTR(Name, -3) ASC, ID ASC;

 

MS SQL Server
SELECT  Name
FROM    STUDENTS
WHERE   Marks > 75
ORDER BY RIGHT(Name, 3) ASC, ID ASC;

 

 


  • MySQL과 MSSQL의 경우 이름의 마지막 세 글자를 RIGHT() 함수를 사용하여 일부 문자열을 추출한다.
    • RIGHT() : 문자열에서 오른쪽부터 지정된 개수의 문자를 반환한다.
    • LEFT() : 문자열에서 왼쪽부터 지정된 개수의 문자를 반환한다.

 

  • ORACLE의 경우 이름의 마지막 세 글자를 SUBSTR() 함수를 사용하여 일부 문자열을 추출한다.
    • SUBSTR() : 문자 단위로 동작하여 문자열의 시작 위치와 길이를 기반으로 추출한다. 끝에서부터 추출할 경우 음수사용.
    • SUBSTRB() : 바이트 단위로 동작. 주로 멀티바이트 문자(예: 한글, 중국어 등)를 다룰 때 사용.

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

728x90
반응형