Топ‑10 номеров, получивших наибольшее количество SMS
Сгруппируйте SMS по phone_number, оставьте группы с COUNT(*) > 1, отсортируйте по убыванию счётчика и примените LIMIT 10.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Сгруппируйте SMS по phone_number, оставьте группы с COUNT(*) > 1, отсортируйте по убыванию счётчика и примените LIMIT 10.
Читать ответСгруппируйте клиентов по city и отфильтруйте группы через HAVING COUNT(*) > 1000. WHERE не подходит для условия на результат агрегирования.
Читать ответСформируйте отдельный ключ из firstName и patronymicName и сохраните по одному Person для каждого ключа. Equals, сгенерированный @Data для Person, учитывает лишние поля и здесь не подходит.
Читать ответСчитайте длину каждой серии одинаковых символов и дописывайте число только для серий длиннее одного. В первом тесте ошибка: в aabccccaaa четыре c, поэтому правильно a2bc4a3.
Читать ответWarehouse и Worker можно сделать Spring-бинами, если это сервисы единого склада; Product обычно остаётся обычной моделью данных. Обратную ссылку Worker → Warehouse внедрять необязательно.
Читать ответСвязь здесь не взаимно однозначна: Moscow относится к #1 и #2. Для поиска по городу нужен индекс «город → коллекция Name», а не одно значение на каждый город.
Читать ответСравнивайте соседние узлы. Если значения равны, исключайте следующий узел из цепочки; иначе переходите дальше. Благодаря сортировке все повторы расположены подряд.
Читать ответХраните просмотренные числа в HashSet и для каждого x ищите targetSum − x. В данном примере подходит пара 4 и 6; пары 2 и 8 нет, поскольку 8 отсутствует в массиве.
Читать ответВставьте две копии существующей строки через INSERT … SELECT с UNION ALL. Явно перечислите копируемые поля и не переносите уникальный автоидентификатор.
Читать ответСчитайте переходы из разделителя в непробельный символ. Флаг «внутри слова» позволяет обработать повторные пробелы, начало и конец строки за один проход.
Читать ответСравните id и mark через ==, а date — через Objects.equals, чтобы корректно обработать null. Вместе с equals необходимо переопределить hashCode по тем же полям.
Читать ответВыберите сотрудников с salary < 30000 и ненулевым manager_id, для которого нет строки руководителя. Условие manager_id IS NOT NULL исключит сотрудников без назначенного начальника.
Читать ответ