2009-12-01 40 views
1

我正在嘗試創建百分比分數。我查詢正確生成的行列,但分什麼也不做(的隊伍將顯示在列,而不是分數)劃分不做任何事

"/"(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 2009-12-01 18:19:41

+0

好問題。返回1,這是從結果中有意義,但不想要 – Buzkie 2009-12-01 18:59:38

回答

0

我想這是回答。計數(*)返回1,因此我只除以1.

0

看來你是使用聚合COUNT(*),而不是分析之一。

試試這個:

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

而且你可以請張貼整個查詢(包括GROUP BY條款)?

+0

代碼更新超過 – Buzkie 2009-12-01 17:44:40

+0

我想我已經找出了問題。計數返回由於分組而導致的每個服務器的實例數量爲1。你能想出一種方法來獲得所有服務器的數量嗎? – Buzkie 2009-12-01 20:37:27

+0

很難告訴你所有的混淆。什麼是服務器? – Quassnoi 2009-12-01 21:49:43