Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 分而治之_Sql_Db2 - Fatal编程技术网

Sql 分而治之

Sql 分而治之,sql,db2,Sql,Db2,我正在尝试创建百分位数分数。我的查询正确生成排名,但除法不起任何作用(排名显示在列中,而不是分数中) 我也尝试过生成排名,然后选择它并进行除法,但结果是一样的 SELECT ..."/"("Disk IO Score",Count(*)) "Score"... FROM(....RANK() OVER(ORDER BY "Disk IO") "Disk IO Score"...) 谢谢, 布兹基 似乎您使用的是聚合COUNT(*)而不是分析型 试试这个: SELECT RANK() OVER

我正在尝试创建百分位数分数。我的查询正确生成排名,但除法不起任何作用(排名显示在列中,而不是分数中)

我也尝试过生成排名,然后选择它并进行除法,但结果是一样的

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


似乎您使用的是聚合
COUNT(*)
而不是分析型

试试这个:

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

你能把整个问题(包括
groupby
子句)都发出来吗?

我想答案是肯定的。计数(*)返回1,所以我只是除以1。

你的
count(*)返回多少?好问题。返回1,这从结果来看是有意义的,但不可取。我想我已经解决了这个问题。计数返回由于分组而为1的每个服务器的实例数。你能想出一个办法让我知道所有服务器的数量吗?你的困惑让我很难说。服务器是什么?
SELECT "System_Name", "/"(RANK() OVER(ORDER BY "Disk IO"),Count(*)) "Disk IO Score" 
FROM (Select...)
GROUP BY "System_Name", "Disk IO"
SELECT  RANK() OVER (...) / COUNT(*) OVER (...)