Перейти к содержимому

Безумная SQL-задача для собеседования Senior Data Engineer | Циклические денежные переводы

Ankit Bansal

0:00 / 0:00

Безумная SQL-задача для собеседования Senior Data Engineer | Циклические денежные переводы

4 302 просмотра · 3 месяца назад
Ankit Bansal
187 тыс. подписчиков
4 302 просмотра · 3 месяца назад
В этом видео мы решаем сложную задачу по SQL, часто встречающуюся на собеседованиях на должности старшего инженера данных и инженера-аналитика. Постановка задачи Дана таблица транзакций. Необходимо определить все группы пользователей, участвующих в циклическом денежном потоке, где: ✔ Деньги начинаются от пользователя A ✔ Проходят через одного или нескольких промежуточных пользователей ✔ Возвращаются обратно к пользователю A ✔ Все транзакции происходят в течение 1 часа ✔ Сумма остается постоянной на протяжении всего цикла ✔ Ни один пользователь не повторяется на пути, кроме начального пользователя Рассматриваемые концепции • Рекурсивные CTE • Обход графа с использованием SQL • Обнаружение циклов • Построение путей • Сложные вопросы по SQL на собеседованиях • Реальные сценарии обнаружения мошенничества • Решение для SQL Server Это отличная задача для укрепления ваших навыков работы с рекурсивными CTE и понимания того, как SQL может использоваться для обнаружения подозрительных шаблонов транзакций. Если вы хотите больше подобных сложных задач по SQL на собеседованиях, подпишитесь на канал и продолжайте практиковаться. 🚀 скрипт: create table transactions ( transaction_id int primary key, sender_id varchar(3) not null, receiver_id varchar(3) not null, amount int not null, transaction_time datetime not null ); вставить в транзакции значения (1, 101, 102, 500, '2025-01-01 09:00:00'), (2, 102, 103, 500, '2025-01-01 09:10:00'), (3, 103, 101, 500, '2025-01-01 09:20:00'), (4, 201, 202, 1000, '2025-01-01 10:00:00'), (5, 202, 203, 1000, '2025-01-01 10:05:00'), (6, 203, 204, 1000, '2025-01-01 10:10:00'), (7, 301, 302, 1000, '2025-01-01 10:00:00'), (8, 302, 301, 1000, '2025-01-01 10:05:00'), (9, 401, 402, 500, '2025-01-01 09:00:00'), (10, 402, 403, 500, '2025-01-01 09:10:00'), (11, 403, 404, 500, '2025-01-01 09:20:00'), (12, 404, 401, 500, '2025-01-01 09:25:00'); От нуля до героя (продвинутый уровень) Агрегация SQL:    • All About SQL Aggregations | SQL Advance |...   Наиболее часто задаваемый вопрос на собеседовании по поводу объединения таблиц:    • Most Asked SQL JOIN based Interview Questi...   Решение 4 сложных задач SQL:    • Solving 4 Tricky SQL Problems   Кейс-стади для аналитика данных в Spotify:    • Data Analyst Spotify Case Study | SQL Inte...   Топ-10 вопросов SQL на собеседовании:    • Top 10 SQL interview Questions and Answers...   Вопрос на собеседовании по поводу полного внешнего объединения таблиц:    • SQL Interview Question Based on Full Outer...   Плейлист для освоения SQL:    • Complex SQL Questions for Interview Prepar...   Rank, Dense_Rank и номер строки:    • RANK, DENSE_RANK, ROW_NUMBER SQL Analytica...   #sql #dataengineer