Все задачи

Друзья друзей (социальный граф)

Продвинутый

Задача уровня Meta/LinkedIn. **Условие:** Найдите для каждого пользователя "друзей друзей" — людей, на которых подписаны его подписки, исключая прямых друзей и самого пользователя. **Таблица:** follows (follower_id, following_id, created_at) **Требования:** 1. Для каждого пользователя найти его подписки (1 уровень) 2. Найти подписки его подписок (2 уровень) 3. Исключить прямые подписки и самого пользователя 4. Вывести user_id, friend_of_friend_id, через кого связаны (via_user_id) **Подсказка:** Можно решить через 2 JOIN или рекурсивный CTE с ограничением глубины.

Категория
Recursive CTE
Время
~25 мин
Базы данных
PostgreSQLGreenplum
Теги
FAANGInterviewSocial GraphFriendsNetworkрекурсия

Войдите, чтобы решить

Начать решение