728x90
반응형
해커 랭크 - https://www.hackerrank.com/
Prepare > SQL > Basic Select > Higher Than 75 Marks
STUDENTS 테이블에서 점수가 75점보다 높은 학생의 이름을 조회합니다.
각 이름의 마지막 세 글자를 기준으로 정렬합니다.
둘 이상의 학생의 이름이 마지막 세 글자가 같다면 (예: Bobby, Robby 등) ID를 기준으로 오름차순으로 2차 정렬합니다.
Input Format
STUDENTS 테이블은 다음과 같이 설명됩니다.
Name에는 대문자(A-Z)와 소문자(a-z) 알파벳만 포함되어 있습니다.
Sample Input
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
반응형
'> 개발-IT-인터넷 > > SQL' 카테고리의 다른 글
[해커랭크(HackerRank) SQL 풀이] - Employee Salaries (0) | 2023.11.28 |
---|---|
[해커랭크(HackerRank) SQL 풀이] - Employee Names (1) | 2023.11.23 |
[해커랭크(HackerRank) SQL 풀이] - Weather Observation Station 12 (0) | 2023.11.14 |
[해커랭크(HackerRank) SQL 풀이] - Weather Observation Station 11 (0) | 2023.11.06 |
[해커랭크(HackerRank) SQL 풀이] - Weather Observation Station 10 (0) | 2023.11.02 |