Тесты SQL-запросов, не проходящие через

#mysql #sql

Вопрос:

Мне задали этот вопрос во время технического теста в HackerRank, я сделал несколько попыток ответить на него и даже спросил друга, который намного опытнее меня

тест

Это код, который мы в итоге отправили:

 SELECT  name, count(*)     
FROM employee
GROUP BY name, phone, age
HAVING COUNT(*) >1;
 

Используя фиктивные данные, я получал точный результат на MySQL workbench.

тест2

Мой запрос неверен? плохо ли написан запрос? Как это можно решить более эффективно (если это вообще возможно)?

Комментарии:

1. Фиктивные данные? Расскажи мне больше.

2. Запрос на вашем скриншоте и запрос в вашем вопросе не совпадают.

3. Неуклюжий конструктор схем, хранящий возраст. (Большинство людей с каждым годом становятся старше, и сохраненные значения возраста скоро устареют. Вместо этого храните DOB.)

Ответ №1:

Ваш запрос почти верен, учитывая объяснение требований. Но я должен сказать, что это ужасный пример вопроса для такого рода проблем — пожалуйста, не разрабатывайте подобные схемы для своего работодателя!

Я говорю почти правильно, так как фактическое требование-это просто имена сотрудников, поэтому технически вам не нужно возвращать количество (*), чтобы удовлетворить требования.