Кандидаты с повторными откликами
Контекст
Рекрутеры «Пульса» жалуются: один и тот же человек подаётся по нескольку раз, и его карточка всплывает в воронке дважды. Прежде чем чистить базу, нужно понять масштаб — с каких почт пришло больше одного отклика и как далеко разъехались даты.
Задача
Верните почты, с которых пришло больше одного отклика, со счётчиком и датами первого и последнего.
Данные
Таблица applications — отклики кандидатов:
| колонка | тип | что хранит |
|---|---|---|
id | int | номер отклика |
candidate | text | имя кандидата |
email | text | почта, NULL если кандидат пришёл без контакта |
department_id | int | отдел, куда откликнулись |
applied_at | date | дата отклика |
stage | text | стадия: new / screening / tech / offer / hired / rejected |
source | text | источник: hh / telegram / referral / site |
Примерные строки:
| id | candidate | applied_at | stage | |
|---|---|---|---|---|
| 1 | Сергей Соколов | sokolov@mail.example | 2026-03-02 | hired |
| 6 | Сергей Соколов | sokolov@mail.example | 2026-04-15 | rejected |
| 15 | Роман Гуляев | NULL | 2026-06-15 | new |
| 18 | Илья Крайнов | NULL | 2026-06-29 | new |
Правила
- Колонки:
email,applications_count,first_applied,last_applied. - Выводим почту, если с неё пришло два отклика или больше.
- Отклики без почты (
email IS NULL) не участвуют: контакта нет, склеивать такие отклики между собой нельзя. - Почта сравнивается как есть, посимвольно:
Sokolov@mail.exampleиsokolov@mail.example— разные кандидаты, приводить регистр не нужно. first_applied— самая ранняя дата отклика с этой почты,last_applied— самая поздняя.- Сортировка: счётчик по убыванию, при равенстве — почта по алфавиту.
Примеры
-- Выдача на данных «Пульса»:
-- email | applications_count | first_applied | last_applied
-- sokolov@mail.example | 2 | 2026-03-02 | 2026-04-15
-- vetrova@mail.example | 2 | 2026-03-19 | 2026-06-27
Где это пригодится
Поиск повторов по ключу — первый шаг любой чистки данных: одинаковые заказы, задвоенные платежи, один и тот же клиент под двумя записями. Ловушка всегда одна и та же: NULL (значение «неизвестно»; два NULL не равны друг другу) в ключе группировки собирается в одну кучу, хотя за ним стоят разные люди.