2011-12-20 67 views
1

我有類似下面的表格:集概率SQL查詢

Number Occurrence 
    1   12 
    2   30 
    3   15 
    4   20 

我想根據每個號碼的出現,計算概率,然後想用概率最高的數字。

我想爲此SQL查詢。

+3

如果只是最高可能性是不就是最高的次數和你不需要的概率 – Mark 2011-12-20 22:13:23

+1

你能否詳細說明一點更多?你只需要發生數量最多的數字,還是你真的想'擲骰子'並得到一個隨機值加權的事件? – 2011-12-20 22:14:11

+0

我想用概率工作,我需要概率來給個人分配個人概率。因此,不僅僅是具有最高概率的列,我實際上需要具有不同概率的所有列。 – Hiren 2011-12-20 22:25:10

回答

4
SELECT Number, Occurance, 
     Occurance*1.0/(SELECT SUM(Occurance) FROM YourTable) AS Probability 
    FROM YourTable 
    ORDER BY Occurance DESC 
+0

爲什麼'* 1.0'請 - 是否得到1位小數? – 2011-12-20 22:19:50

+0

好吧,我認爲,我應該給更多的idea.Occurance已經是聚合函數。我的意思是Occurance是另一列的數量。 – Hiren 2011-12-20 22:20:55

+0

@BarryKaye如果Occurance是一個INT,那麼操作將隱式返回一個INT數據類型,並且所有值都將爲0. * 1.0強制一個非整數返回類型。 – 2011-12-20 22:21:05

1

TSQL:

SELECT TOP(1) Number 
FROM Table_name 
ORDER BY Occurance DESC 

MySQL的:

SELECT Number 
FROM Table_name 
ORDER BY Occurance DESC 
LIMIT 1; 
+0

爲什麼你認爲它是SQL服務器? – 2011-12-20 22:21:02

+0

@ypercube固定,謝謝指出 – 2011-12-20 22:25:56