Получил на собеседовании задание по 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) выглядит не очень красиво. Может быть еще и поэтому "почти" правильно?
Комментариев нет:
Отправить комментарий