Ваш запрос почти правильный, но он не гарантирует, что один из языков — именно SQL. Чтобы найти имена сотрудников, которые знают SQL и как минимум еще один другой язык, нужно добавить условие, что среди языков есть SQL, и при этом общее количество языков не меньше двух.
таблица employee
Ваш запрос почти правильный, но он не гарантирует, что один из языков — именно SQL.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
таблица employee
| name | lang |
| Nick | C# |
| Nick | SQL |
| Eva | Rust |
| Vika | SQL |
| Ivan | Java |
| Ivan | SQL |
Нужно составить запрос, который найдет имена сотрудников, знающих SQL и как минимум еще один другой язык
select name from employee group by name having COUNT(DISTINCT lang) >= 2;
Ответ
Ваш запрос почти правильный, но он не гарантирует, что один из языков — именно SQL. Чтобы найти имена сотрудников, которые знают SQL и как минимум еще один другой язык, нужно добавить условие, что среди языков есть SQL, и при этом общее количество языков не меньше двух.
Пример запроса:
SELECT name
FROM employee
GROUP BY name
HAVING COUNT(DISTINCT lang) >= 2
AND SUM(CASE WHEN lang = 'SQL' THEN 1 ELSE 0 END) >= 1;
Здесь COUNT(DISTINCT lang) >= 2 проверяет, что сотрудник знает минимум два языка, а SUM(CASE WHEN lang = 'SQL' THEN 1 ELSE 0 END) >= 1 — что среди них есть SQL.