Skip to content

Commit 739ecd7

Browse files
committed
task 49
1 parent f5dad3c commit 739ecd7

File tree

4 files changed

+60
-2
lines changed

4 files changed

+60
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
46. Перепись населения - [Population Census](./tasks/46.md)
7373
47. Африканские города - [African Cities](./tasks/47.md)
7474
48. Средняя численность населения каждого континента - [Average Population of Each Continent](./tasks/48.md)
75+
49. Отчет - [The Report](./tasks/49.md)
7576

7677

7778
## В процессе... , будет дополнено)

tasks/49.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,68 @@
33
<img src="./art/49.png" alt="solution" >
44

55
#### eng:
6+
You are given two tables: Students and Grades. Students contains three columns ID, Name and Marks.
67

78

89

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+
924
#### рус:
25+
Вам даны две таблицы: Студенты и Оценки. Студенты содержит три столбца ID, имя и отметки.
26+
1027

1128

29+
Оценки содержат следующие данные:
30+
31+
32+
33+
Кетти дает Еве задание создать отчет, содержащий три столбца: Имя, Оценка и Оценка. Кетти не нужны ИМЕНА тех
34+
учеников, которые получили оценки ниже 8. Отчет должен быть в порядке убывания оценок, т. е. более высокие оценки
35+
вводятся первыми. Если есть более одного ученика с одинаковой оценкой (8-10), упорядочите этих конкретных учеников
36+
по их именам в алфавитном порядке. Наконец, если оценка ниже 8, используйте «NULL» в качестве их имени и
37+
перечислите их по их оценкам в порядке убывания. Если есть более одного учащегося с одинаковой оценкой (1-7),
38+
упорядочите этих конкретных учащихся по их оценкам в порядке возрастания.
39+
40+
Напишите запрос, чтобы помочь Еве.
41+
1242

1343
#### код с коментариями:
1444
```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 /* отсортировать по */
1654
```
1755

1856
#### код для hackerrank:
1957
```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
2168
```
2269

2370

tasks/49.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
SELECT
2+
CASE WHEN B.GRADE < 8 THEN NULL
3+
ELSE A.NAME END AS NAME,
4+
B.GRADE,
5+
A.MARKS
6+
FROM STUDENTS A
7+
INNER JOIN GRADES B
8+
ON A.MARKS BETWEEN B.MIN_MARK AND B.MAX_MARK
9+
ORDER BY
10+
B.GRADE DESC, NAME, A.MARKS

tasks/art/49.png

45.7 KB
Loading

0 commit comments

Comments
 (0)