Страницы

Поиск по вопросам

четверг, 15 ноября 2018 г.

Корректировка sql запроса

Получил на собеседовании задание по sql:
Получить имя и количество раз, сколько оно повторялось, но вывести только те имена, которые повторялись больше 2-х раз - сортировка по количеству повторений, от большего до меньшего.
Моим решением было:
select name, count(name) from table group by name having count(name) > 2 order by count(name) desc;
фидбек интервьюера был таким: запрос "почти" правильный
Может кто-то подсказать, как его надо поменять или улучшить?


Ответ

ORDER BY выполняется после SELECT, поэтому count(name) в нем ИМХО лишний:
select name, count(name) AS num from table group by name having count(name) > 2 order by num desc;
Кроме того безымянное поле count(name) выглядит не очень красиво. Может быть еще и поэтому "почти" правильно?

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

Отправить комментарий