Предполагается следующая таблица:
People
---------------------------
id | First Name | Last Name
Как я могу выбрать строки ORDERed BY наиболее часто встречающихся первых имен?
select
count(firstname) as countFn,
firstname
from people
group by firstname
order by countFn desc
изменить: id и lastname удалены из
select p.*, t.count
from people p
, (select FirstName, count(1) as count
from people
group by FirstName) t
where p.FirstName = t.FirstName
order by t.count desc;
Если вам нужно увидеть все имена, отсортированные по числу первых имен в порядке убывания, то для Oracle это будет работать:
select n.firstname, n.lastname, g.count
from
people n, (select firstname, count(*) count from people group by firstname) g
where n.firstname=g.firstname
order by g.count desc
Не знаю, как это работает, например. MySql.