|
3 | 3 | <img src="./art/49.png" alt="solution" >
|
4 | 4 |
|
5 | 5 | #### eng:
|
| 6 | +You are given two tables: Students and Grades. Students contains three columns ID, Name and Marks. |
6 | 7 |
|
7 | 8 |
|
8 | 9 |
|
| 10 | +Grades contains the following data: |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +Ketty gives Eve a task to generate a report containing three columns: Name, Grade and Mark. Ketty doesn't want the |
| 15 | +NAMES of those students who received a grade lower than 8. The report must be in descending order by grade -- i.e. |
| 16 | +higher grades are entered first. If there is more than one student with the same grade (8-10) assigned to them, |
| 17 | +order those particular students by their name alphabetically. Finally, if the grade is lower than 8, use "NULL" as |
| 18 | +their name and list them by their grades in descending order. If there is more than one student with the same grade |
| 19 | +(1-7) assigned to them, order those particular students by their marks in ascending order. |
| 20 | + |
| 21 | +Write a query to help Eve. |
| 22 | + |
| 23 | + |
9 | 24 | #### рус:
|
| 25 | +Вам даны две таблицы: Студенты и Оценки. Студенты содержит три столбца ID, имя и отметки. |
| 26 | + |
10 | 27 |
|
11 | 28 |
|
| 29 | +Оценки содержат следующие данные: |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | +Кетти дает Еве задание создать отчет, содержащий три столбца: Имя, Оценка и Оценка. Кетти не нужны ИМЕНА тех |
| 34 | +учеников, которые получили оценки ниже 8. Отчет должен быть в порядке убывания оценок, т. е. более высокие оценки |
| 35 | +вводятся первыми. Если есть более одного ученика с одинаковой оценкой (8-10), упорядочите этих конкретных учеников |
| 36 | +по их именам в алфавитном порядке. Наконец, если оценка ниже 8, используйте «NULL» в качестве их имени и |
| 37 | +перечислите их по их оценкам в порядке убывания. Если есть более одного учащегося с одинаковой оценкой (1-7), |
| 38 | +упорядочите этих конкретных учащихся по их оценкам в порядке возрастания. |
| 39 | + |
| 40 | +Напишите запрос, чтобы помочь Еве. |
| 41 | + |
12 | 42 |
|
13 | 43 | #### код с коментариями:
|
14 | 44 | ```sql
|
15 |
| - |
| 45 | +SELECT /* выбрать данные */ |
| 46 | + CASE WHEN B.GRADE < 8 THEN NULL /* столбец по условию */ |
| 47 | + ELSE A.NAME END AS NAME, |
| 48 | + B.GRADE, /* столбец */ |
| 49 | + A.MARKS /* столбец */ |
| 50 | +FROM STUDENTS A /* из таблицы */ |
| 51 | +INNER JOIN GRADES B /* объединенной с таблицей */ |
| 52 | +ON A.MARKS BETWEEN B.MIN_MARK AND B.MAX_MARK /* по столбцу */ |
| 53 | +ORDER BY B.GRADE DESC, NAME, A.MARKS /* отсортировать по */ |
16 | 54 | ```
|
17 | 55 |
|
18 | 56 | #### код для hackerrank:
|
19 | 57 | ```sql
|
20 |
| - |
| 58 | +SELECT |
| 59 | + CASE WHEN B.GRADE < 8 THEN NULL |
| 60 | + ELSE A.NAME END AS NAME, |
| 61 | + B.GRADE, |
| 62 | + A.MARKS |
| 63 | +FROM STUDENTS A |
| 64 | +INNER JOIN GRADES B |
| 65 | +ON A.MARKS BETWEEN B.MIN_MARK AND B.MAX_MARK |
| 66 | +ORDER BY |
| 67 | + B.GRADE DESC, NAME, A.MARKS |
21 | 68 | ```
|
22 | 69 |
|
23 | 70 |
|
|
0 commit comments