2015-10-18 93 views
0

使用SQL Server Express 2014. sidenote:我的'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

+0

你能設置一個程序嗎?或者它必須是單個查詢? –

+0

它不需要在單個查詢中。只需要發生! – ijustlovemath

回答

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 

這是否給你足夠的合作?

+0

是的,我認爲是的!我想從另一個表格的值中生成這些表格。第二個表格有一個複合鍵(id,cycle)和(值),我想從中找到百分比。最終的結果將是一個表[ID],[百分比];輸入給定模擬ID範圍後,範圍內的百分比。這看起來像什麼?我仍然被困在一個類似C的思維模式中,認爲我將不得不創建一個數組,在'k'上迭代的for循環中使用'SELECT .. WHERE id = k'運行查詢。有沒有更簡單的方法來做到這一點? – ijustlovemath

+0

每個記錄中總是有相同數量的值嗎? –

+0

它有所不同。當我有機會時,我將使用查詢範圍內的總體百分比來編輯OP。 – ijustlovemath

相關問題