Как выбрать топ n

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
kvn
Сообщения: 6
Зарегистрирован: 17 фев 2004, 10:14
Откуда: Ukraine
Контактная информация:

mm писал(а):Есть таблица А, в ней поле id. Запрос вида

SELECT id, count(id)
FROM A
WHERE ...
GROUP BY id
ORDER BY count(id) DESC
LIMIT 0,10

Возвращает все строки. Хочется выбрать только n строк.
Как это сделать?
Дописал в квоте (первые 10 строк)
--
Best regards, kVn
PHP4You <http://php4you.kiev.ua/>
kvn
Сообщения: 6
Зарегистрирован: 17 фев 2004, 10:14
Откуда: Ukraine
Контактная информация:

mm писал(а):В Oracle не канает
select * from (
SELECT id, count(id) as bb, ROWNUM as RN
FROM A
WHERE ...
GROUP BY id
) where RN > 0 and RN < 10

типа того...
не проверял..
сортировать не будет (про сортировку - RTFM)
--
Best regards, kVn
PHP4You <http://php4you.kiev.ua/>
miland
Сообщения: 13
Зарегистрирован: 05 мар 2004, 10:30
Контактная информация:

Немножко подправлю
select * from (
SELECT id, count(id) FROM A WHERE ... GROUP BY id ORDER BY count(id) DESC
) where RowNum < 10
Филь глюк!
an
Сообщения: 2
Зарегистрирован: 31 янв 2005, 21:16

mm писал(а):Есть таблица А, в ней поле id. Запрос вида

SELECT id, count(id)
FROM A
WHERE ...
GROUP BY id
ORDER BY count(id) DESC

Возвращает все строки. Хочется выбрать только n строк.
Как это сделать?
SELECT top 10 id, count(id)
FROM A
WHERE ...
GROUP BY id
ORDER BY count(id) DESC

?
Ответить