构造一个查询,在第一次输入范围后,给出给定范围内的值的百分比

时间:2015-10-18 07:00:21

标签: sql sql-server-2014-express

使用SQL Server Express 2014.旁注:我的'p'按钮正在运行,如果我错过了一些,请原谅我。

要查找范围[a,b]内的值百分比,我会使用查询:

SELECT 100.0*COUNT([value])/1.0*COUNT(*) FROM [table] WHERE [value] >= a AND [value] <= b

相反,如果我想找到范围内的值的百分比,从值首次达到该范围开始(不包括我们较低计数中的那些初始值),我该怎么做?

示例:

48, 10, 25, 31, 42, 26, 14, 28

范围[26,35]

前三个值超出范围(一个在上面,两个在下面),所以它们被扔掉了。新数据集是:

31, 42, 26, 14, 28

其余5个值中有3个在范围内,因此查询应返回60.0

1 个答案:

答案 0 :(得分:0)

在伪代码中:

Var startingcounter = 0
Var inrange counter = 0

On input
  if inrange then 
    startingcounter = + 1
  if startingcounter > 0 then
    if inrange then
      inrangecounter = +1
On end input 
  return inrangecounter/startingcounter*100.0

这是否足以让你使用?