|
3 | 3 | <img src="./art/25.png" alt="solution" > |
4 | 4 |
|
5 | 5 | #### 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. |
6 | 17 |
|
7 | 18 |
|
8 | 19 |
|
9 | 20 | #### рус: |
| 21 | +Корпорация-конгломерат Эмбер только что приобрела несколько новых компаний. Каждая из компаний следует этой иерархии: |
| 22 | + |
| 23 | +Учитывая приведенные ниже схемы таблиц, напишите запрос для вывода кода компании, имени основателя, общего числа |
| 24 | +ведущих менеджеров, общего числа старших менеджеров, общего числа менеджеров и общего числа сотрудников. |
| 25 | +Упорядочите выходные данные по возрастанию company_code. |
10 | 26 |
|
| 27 | +Примечание: |
| 28 | + |
| 29 | +Таблицы могут содержать повторяющиеся записи. |
| 30 | +Код компании является строкой, поэтому сортировка не должна быть числовой. Например, если company_codes — C_1, C_2 |
| 31 | +и C_10, то возрастающие company_codes будут C_1, C_10 и C_2. |
11 | 32 |
|
12 | 33 |
|
13 | 34 | #### код с коментариями: |
14 | 35 | ```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 /* сгруппировать по компаниям, затем по основателям */ |
16 | 49 | ``` |
17 | 50 |
|
18 | 51 | #### код для hackerrank: |
19 | 52 | ```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 |
21 | 66 | ``` |
22 | 67 |
|
23 | 68 |
|
|
0 commit comments