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.
Input Format
The STUDENTS table is described as follows:
Column | Type |
---|---|
ID | INTEGER |
NAME | STRING |
MARKS | INTEGER |
The Name column only contains uppercase (A-Z) and lowercase (a-z) letters.
Sample Input
ID | NAME | MARKS |
---|---|---|
1 | ASHLEY | 81 |
2 | SAMANTHA | 75 |
4 | JULIA | 76 |
3 | JULIA | 84 |
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
SELECT NAME FROM STUDENTS WHERE MARKS > 75 ORDER BY SUBSTR(NAME, LENGTH(NAME)-2, 3), ID;
Write a query that prints a list of employee names (i.e.: the name attribute) from the Employee table in alphabetical order.
Input Format
The Employee table containing employee data for a company is described as follows:
Column | Type |
---|---|
employee_id | INTEGER |
name | STRING |
months | INTEGER |
salary | INTEGER |
where employee_id is an employee's ID number, name is their name, months is the total number of months they've been working for the company, and salary is their monthly salary.
Sample Input
employee_id | name | marks | salary |
---|---|---|---|
12228 | Rose | 15 | 1968 |
33645 | Angela | 1 | 3443 |
45692 | Frank | 17 | 1608 |
56118 | Patrick | 7 | 1345 |
59725 | Lisa | 11 | 2330 |
74197 | Kimberly | 16 | 4372 |
78454 | Bonnie | 8 | 1771 |
83565 | Michael | 6 | 2017 |
98607 | Todd | 5 | 3396 |
99989 | Joe | 9 | 3573 |
Sample Output
Angela Bonnie Frank Joe Kimberly Lisa Michael Patrick Rose Todd
Solution
SELECT NAME FROM EMPLOYEE ORDER BY NAME;
Write a query that prints a list of employee names (i.e.: the name attribute) for employees in Employee having a salary greater than $2000 per month who have been employees for less than 10 months. Sort your result by ascending employee_id.
Input Format
The Employee table containing employee data for a company is described as follows:
Column | Type |
---|---|
employee_id | INTEGER |
name | STRING |
months | INTEGER |
salary | INTEGER |
where employee_id is an employee's ID number, name is their name, months is the total number of months they've been working for the company, and salary is the their monthly salary.
Sample Input
employee_id | name | marks | salary |
---|---|---|---|
12228 | Rose | 15 | 1968 |
33645 | Angela | 1 | 3443 |
45692 | Frank | 17 | 1608 |
56118 | Patrick | 7 | 1345 |
59725 | Lisa | 11 | 2330 |
74197 | Kimberly | 16 | 4372 |
78454 | Bonnie | 8 | 1771 |
83565 | Michael | 6 | 2017 |
98607 | Todd | 5 | 3396 |
99989 | Joe | 9 | 3573 |
Sample Output
Angela Michael Todd Joe
Explanation
Angela has been an employee for 1 month and earns $3443 per month. Michael has been an employee for 6 months and earns $2017 per month. Todd has been an employee for 5 months and earns $3396 per month. Joe has been an employee for 9 months and earns $3573 per month. We order our output by ascending employee_id.
Solution
SELECT NAME FROM EMPLOYEE WHERE SALARY > 2000 AND MONTHS < 10 ORDER BY EMPLOYEE_ID;