employees — сотрудники, timesheet — отработанные часы по дням, hourly_rates — часовая ставка в рублях. Ставка есть не у всех: новичку её ещё не завели.
Для каждого сотрудника и каждого месяца, в котором у него есть часы, верните emp_id, full_name, month (первое число месяца) и salary_rub — часы за месяц × ставка.
Если ставки нет, сотрудник всё равно в отчёте, salary_rub — NULL. Порядок — по emp_id, затем month.
В работе: Сверка фонда оплаты почасовых сотрудников перед выплатой.
Таблицы
employees — сотрудник
| Колонка | Тип | Что значит |
|---|---|---|
emp_id | int | ключ |
full_name | text | ФИО |
timesheet — часы за день
| Колонка | Тип | Что значит |
|---|---|---|
emp_id | int | сотрудник |
work_date | date | день |
hours | numeric | часы |
hourly_rates — одна ставка на сотрудника
| Колонка | Тип | Что значит |
|---|---|---|
emp_id | int | ключ |
rate_rub | numeric | руб. в час |
Пример: данные
employees · 3 строки
| emp_id | full_name |
|---|---|
| 1 | Гусева Ольга |
| 2 | Ткаченко Артём |
| 3 | Бойко Нина |
timesheet · 4 строки
| emp_id | work_date | hours |
|---|---|---|
| 1 | 2025-10-01 | 8 |
| 1 | 2025-10-02 | 6,5 |
| 1 | 2025-11-03 | 8 |
| 2 | 2025-10-15 | 4 |
hourly_rates · 3 строки
| emp_id | rate_rub |
|---|---|
| 1 | 650 |
| 2 | 480 |
| 3 | 900 |
Ожидаемый ответ
| emp_id | full_name | month | salary_rub |
|---|---|---|---|
| 1 | Гусева Ольга | 2025-10-01 | 9425 |
| 1 | Гусева Ольга | 2025-11-01 | 5200 |
| 2 | Ткаченко Артём | 2025-10-01 | 1920 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
emp_id, full_name, month, salary_rub
Источник: тестовое аналитика данных (Middle) в Авито, сборник No Data No Growth. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.