-- Написать два запроса:

Отсутствие профиля проверяется через NOT EXISTS. Для пользователей с несколькими профилями сначала находят группы с COUNT(*) > 1, затем выводят каждый профиль.

Короткий ответ

Что ответить на собеседовании

Отсутствие профиля проверяется через NOT EXISTS. Для пользователей с несколькими профилями сначала находят группы с COUNT(*) > 1, затем выводят каждый профиль.

Подробный разбор

Ответ с пояснениями

Условие

-- Написать два запроса: -- Запрос 1: Вывести все id пользователей у которых нет профилей -- Запрос 2: Для пользователей у которых более одного профиля вывести id пользователя и id профилей

Ответ

Отсутствие профиля проверяется через NOT EXISTS. Для пользователей с несколькими профилями сначала находят группы с COUNT(*) > 1, затем выводят каждый профиль.

Для примерной схемы users(id), profiles(id, user_id):

SELECT u.id
FROM users u
WHERE NOT EXISTS (
  SELECT 1 FROM profiles p WHERE p.user_id = u.id
);

SELECT p.user_id, p.id AS profile_id
FROM profiles p
JOIN (
  SELECT user_id FROM profiles
  GROUP BY user_id HAVING COUNT(*) > 1
) multiple ON multiple.user_id = p.user_id
ORDER BY p.user_id, p.id;

Имена таблиц заданы как допущение, поскольку схема не приложена. Второй запрос выводит отдельную строку на профиль, не агрегированный список идентификаторов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее