Anusha Murali

Logo

Please see github.com/anusha-murali for all of my repositories.

View GitHub Profile

36. Higher than 75 Marks: Solution


Query the Name of any student in STUDENTS who scored higher than 75 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.

The STUDENTS table is described as follows:

36_1

The Name column only contains uppercase (A-Z) and lowercase (a-z) letters.

Sample Input

36_2

Sample Output

Ashley
Julia
Belvet

Explanation

Only Ashley, Julia, and Belvet have Marks > 75. If you look at the last three characters of each of their names, there are no duplicates and ‘ley’ < ‘lia’ < ‘vet’.

solution_image5

Selecting those students who scored higher than 75 is easy. The query for doing this task is SELECT NAME FROM STUDENTS WHERE MARKS > 5'. We are asked to order the output based on the last three characters of the students' names. Using Oracle's SUBSTR() function, the last three characters of NAME is SUBSTR(NAME, LENGTH(NAME)-2, 3). Hence, our ORDER BY clause will be ORDER BY SUBSTR(NAME, LENGTH(NAME)-2, 3)`. We also note that if two or more outputs have the same last three characters, we need to order them using the students’ IDs. Hence the final query will be as follows:

SELECT NAME 
FROM STUDENTS
WHERE MARKS > 75
ORDER BY SUBSTR(NAME, LENGTH(NAME)-2,3), ID;

Back to problems


anusha-murali.github.io