2010-09-13 102 views
2

看看MYSQL上的奇怪問題。 alt textmysql上的奇怪分區問題

查看列3.結果是0.02876121,但實際結果應該是列4 = 0.02876。 爲什麼MYSQL在小數點上給出錯誤值?

*另一件事是,它只是給出錯誤的值,如果我追加「凡列=‘uniquevalue’」回到我想要的結果。 如果我刪除條件,給出表中的所有記錄,則該值是正確的。

+0

你可以張貼等級和計劃的價值算?這可能是由於SUM的價值可能並不完全如上面的數據所示。 – 2010-09-13 07:56:00

+0

我認爲你的意思是'Float'而不是'fault',我不是mySQL的專家,但是看起來mySQL在這裏執行一個浮點計算似乎是相當合理的。 – MikeAinOz 2010-09-13 08:10:14

+0

@Ramesh Soni:排名和節目數量有差異。值在不同的行上。我使用sum()和group by by函數。 – neobie 2010-09-13 08:17:12

回答

0

我懷疑它的所有與計算中使用的數據類型做。

如果「排名」和「PROGRAM_COUNT」都在整數和小數然後SUM混合()將返回一個十進制值,否則將返回一個浮點值。否則SUM()會給出一個float或double。

在SQL float和double都是近似值,您可以定義精度與FLOAT關鍵字的水平。

在你的表的數據類型是不同的列?

+0

等級和程序數據類型都是整數。值應該恰好是0.02876,我想知道後面的值「121」來自哪裏? – neobie 2010-09-13 08:58:34

+0

什麼數據類型是輸出列 - 在您的圖上標記爲「sum(rank/program_count)/ count(*)」?它是浮點數,雙精度還是小數點? – ChrisBD 2010-09-13 09:57:07

+0

如何查看圖表上的數據類型?它在哪裏? – neobie 2010-09-14 01:59:43