2009-12-01 2 views
1

Я пытаюсь создать процентили. Мой запрос генерирует ряды правильно, но разрыв не делает ничего (ранги отображаются в столбцах, а не оценки)Divide ничего не делает

"/"(RANK() OVER(ORDER BY "Disk IO"),Count(*)) "Disk IO Score" 

Я также попытался генерируя ранг затем выбрать, что и деление, но она имеет то же результат.

SELECT ..."/"("Disk IO Score",Count(*)) "Score"... 
FROM(....RANK() OVER(ORDER BY "Disk IO") "Disk IO Score"...) 

Спасибо, Buzkie

SELECT "System_Name", "/"(RANK() OVER(ORDER BY "Disk IO"),Count(*)) "Disk IO Score" 
FROM (Select...) 
GROUP BY "System_Name", "Disk IO" 
+0

Что вы возвращаете 'COUNT (*) s'? – Quassnoi

+0

Хороший вопрос. Возвращение 1, что имеет смысл из результатов, но не нужно – Buzkie

ответ

0

Я думаю, это ответили. Счетчик (*) возвращался 1, поэтому я просто разделил на 1.

0

Кажется, вы используете совокупный COUNT(*), а не аналитической один.

Попробуйте это:

SELECT RANK() OVER (...)/COUNT(*) OVER (...) 

И могли бы вы опубликовать весь запрос (включая GROUP BY статей)?

+0

обновленный код – Buzkie

+0

Думаю, я выяснил проблему. Счетчик возвращает количество экземпляров каждого сервера, из которых 1 связано с группировкой. Можете ли вы подумать о том, как я могу получить количество всех серверов? – Buzkie

+0

Трудно сказать со всеми твоими обфускациями. Что такое сервер? – Quassnoi

Смежные вопросы