2015-12-24 4 views
-1

Я работаю над запросом, который приведет к возвращению имен десяти лучших людей из таблицы с наибольшей длиной. Запрос как:sql query in teradata

SELECT name, COUNT(*) As frequency 
FROM loadbise.student 
GROUP BY name 
ORDER BY COUNT(*) DESC 
Where name is Not Null 
sample 10; 

Он возвращает мне первую десятку из нижней части. Я хочу выбрать первую десятку от самого высокого значения до второго самого высокого значения и так далее. Верхняя функция не работает на teradata 6 (моя версия).

+0

Yup работ хорошо. Ошибка – zohaibkhan

+0

После 'ORDER BY' вы должны использовать предложение' HAVING', а не 'WHERE'. – minatverma

ответ

0

Я думаю, что вы хотите TOP:

SELECT TOP 10 name, COUNT(*) As frequency 
FROM loadbise.student 
WHERE name is Not Null 
GROUP BY name 
ORDER BY COUNT(*) DESC; 

Вы можете просмотреть документацию here. TOP и SAMPLE не делал то же самое.

+1

Он дает ошибку «Вставить что-то между верхним и 10», – zohaibkhan