Skip to content

Commit 6dfa23c

Browse files
committed
task 25
1 parent ce629f1 commit 6dfa23c

3 files changed

Lines changed: 48 additions & 2 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
22. ПОДУШКИ - [The PADS](./tasks/22.md)
4949
23. Профессии - [Occupations](./tasks/23.md)
5050
24. Узлы бинарного дерева - [Binary Tree Nodes](./tasks/24.md)
51+
25. Новые компании - [New Companies](./tasks/24.md)
5152

5253

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

tasks/25.md

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

55
#### eng:
6+
Amber's conglomerate corporation just acquired some new companies. Each of the companies follows this hierarchy:
7+
8+
Given the table schemas below, write a query to print the company_code, founder name, total number of lead managers,
9+
total number of senior managers, total number of managers, and total number of employees. Order your output by
10+
ascending company_code.
11+
12+
Note:
13+
14+
The tables may contain duplicate records.
15+
The company_code is string, so the sorting should not be numeric. For example, if the company_codes are C_1, C_2,
16+
and C_10, then the ascending company_codes will be C_1, C_10, and C_2.
617

718

819

920
#### рус:
21+
Корпорация-конгломерат Эмбер только что приобрела несколько новых компаний. Каждая из компаний следует этой иерархии:
22+
23+
Учитывая приведенные ниже схемы таблиц, напишите запрос для вывода кода компании, имени основателя, общего числа
24+
ведущих менеджеров, общего числа старших менеджеров, общего числа менеджеров и общего числа сотрудников.
25+
Упорядочите выходные данные по возрастанию company_code.
1026

27+
Примечание:
28+
29+
Таблицы могут содержать повторяющиеся записи.
30+
Код компании является строкой, поэтому сортировка не должна быть числовой. Например, если company_codes — C_1, C_2
31+
и C_10, то возрастающие company_codes будут C_1, C_10 и C_2.
1132

1233

1334
#### код с коментариями:
1435
```sql
15-
36+
SELECT /* выбрать данные */
37+
c.company_code, /* столбец код компании */
38+
c.founder, /* столбец основатель */
39+
COUNT(DISTINCT l.lead_manager_code), /* столбец количество лидов */
40+
COUNT(DISTINCT s.senior_manager_code), /* столбец количество сеньеров */
41+
COUNT(DISTINCT ma.manager_code), /* столбец количество программистов */
42+
COUNT(DISTINCT e.employee_code) /* столбец количество разработчик */
43+
FROM company c /* из таблицы компании с псевданимом */
44+
RIGHT JOIN lead_manager l ON l.company_code = c.company_code /* правое объединение таблицы лиды и компании */
45+
RIGHT JOIN senior_manager s ON s.company_code = c.company_code /* правое объединение таблицы сеньеры и компании */
46+
RIGHT JOIN manager ma ON ma.company_code = c.company_code /* правое объединение таблицы программисты и компании */
47+
RIGHT JOIN employee e ON e.company_code = c.company_code /* правое объединение таблицы разработчики и компании */
48+
GROUP BY c.company_code, founder /* сгруппировать по компаниям, затем по основателям */
1649
```
1750

1851
#### код для hackerrank:
1952
```sql
20-
53+
SELECT
54+
c.company_code,
55+
c.founder,
56+
COUNT(DISTINCT l.lead_manager_code),
57+
COUNT(DISTINCT s.senior_manager_code),
58+
COUNT(DISTINCT ma.manager_code),
59+
COUNT(DISTINCT e.employee_code)
60+
FROM company c
61+
RIGHT JOIN lead_manager l ON l.company_code = c.company_code
62+
RIGHT JOIN senior_manager s ON s.company_code = c.company_code
63+
RIGHT JOIN manager ma ON ma.company_code = c.company_code
64+
RIGHT JOIN employee e ON e.company_code = c.company_code
65+
GROUP BY c.company_code, founder
2166
```
2267

2368

tasks/art/25.png

54.5 KB
Loading

0 commit comments

Comments
 (0)