Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите построить запрос (Рейтинг обращений)  [new]
Boriska
Guest
Есть две таблицы:
1. list с полями loadcount - число, categoryid - число (ссылка на поле id таблицы category) + куча других полей.
2. category (id - число, name - строка)

Как построить такой запрос, чтобы в результирующей выборке содержались бы все поля таблицы list + category.name, а строки выводились по следующему правилу:
три записи с наибольшим значением loadcount для каждого categoryid. Т.е. если в таблице category - 5 записей,то в запросе будет 15, причем сортировка сначала по категории, а затем по значению loadcount.

Т.е. нужно сделать своего рода рейтинг самых популярных записей по категориям.
10 мар 05, 16:28    [1375592]     Ответить | Цитировать Сообщить модератору
 Re: Помогите построить запрос (Рейтинг обращений)  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
select c.name,l.loadcount 
from category c
join list l on (l.categoryid=c.id)
where not exists(select count(categoryid) from list 
                 where categoryid = l.categoryid 
                   and loadcount < l.loadcount having count(categoryid) > 2)
order by c.name,l.loadcount  desc

10 мар 05, 16:52    [1375703]     Ответить | Цитировать Сообщить модератору
 Re: Помогите построить запрос (Рейтинг обращений)  [new]
Boriska
Guest
Большое спасибо. Сам я такое долго бы писал.
10 мар 05, 17:24    [1375851]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить