我想要一個計算字段,它給了我一個表中列值的百分位數。最好的辦法是什麼?SQL Server - 如何添加另一列的百分比值列?
我有一個表,只有一列包含值從0到10000,隨機分佈。我想添加另一列來告訴我同一行上的值與原始列中所有其他值的百分比。
這裏解釋了百分位數的2種定義:http://onlinestatbook.com/chapter1/percentiles.html。
我正在使用我知道的定義。例如:一個值在第25百分位數表示25%的人口在AT或低於該值。
我想到的算法是下面,我希望有人能翻譯爲SQL適合我,因爲我是一個SQL初學者:
對於我的表中的所有行,如果該值小於或等於在當前行中賦值,然後計算++。在桌子的最後,我做了這個分區:計數/行數以得到我的百分數。這對我來說足夠準確,因爲有很多行。
我們能確切知道是否有重複列?對於「百分位數」的含義,似乎也存在一些混淆,所以我真的建議添加一些樣本輸入和輸出來清除它。 –
@Chris Cunningham:以下是百分位的含義:http://en.wikipedia.org/wiki/Percentile。是的,可以有重複,就像SAT分數有重複一樣。 – user776676
給我們示例輸入和輸出。如果數字是1,2,3和4,你認爲1的「百分位數」是10還是0? –