Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Вывести список самых активных пользователей


Автор: elCreator 29.4.2009, 20:26
Есть таблица messages вида 
Пользователь | Сообщение
Вася                | tralala
Вася                | lalala
Соня               | tratata
Петя               | tralala
Петя                | tratata
Вася                | tralala

Нужно вывести список пользователей, отсортированный по убыванию количества сообщений, т.е. 
Вася
Петя
Соня

Как сделать с наименьшимим затратами - есть ли что-то поизящнее, чем select count(*) from messages where user= (тут перебираем в цикле имеющихся пользователей), отсортированное по убыванию?

Автор: Gluttton 29.4.2009, 21:21
Код

select S.user
from (
    select user, count(message) as mes
    from messages
        group by user
)   as S
    order by S.user

Автор: Zloxa 29.4.2009, 21:29
Gluttton, 
Цитата(elCreator @  29.4.2009,  20:26 Найти цитируемый пост)
отсортированный по убыванию количества сообщений


Цитата(Gluttton @  29.4.2009,  21:21 Найти цитируемый пост)
order by S.user

 smile 

Автор: Gluttton 29.4.2009, 21:41
 smile 

Протупил...

Код

select S.user
from (
    select user, count(message) as mes
    from messages
        group by user
)   as S
    order by S.mes

Автор: elCreator 30.4.2009, 00:50
Большое спасибо, работает как надо. Еще бы в синтаксисе разобраться) пошел читать мануалы по SQL...

Автор: Gluttton 30.4.2009, 00:57
Пожалуйста  smile !

Цитата

пошел читать мануалы по SQL...


http://www.sql-ex.ru/

Автор: Deniz 30.4.2009, 06:05
Код
select user, count(message) as mes
from messages
group by user
order by 2 desc, 1
а так не катит?

Автор: DimW 30.4.2009, 09:05
Цитата(Deniz @  30.4.2009,  06:05 Найти цитируемый пост)
а так не катит?

нет, ибо:
Цитата(elCreator @  29.4.2009,  20:26 Найти цитируемый пост)
Нужно вывести список пользователей


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)