2009-12-01 51 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