2013-09-25 47 views
4

我加載大數據到數據庫,如何使用count(*)和除法運算在SQL語句中

我想知道這個過程怎麼回事。

我使用

select count(*) from table 

檢查多少行加載。 現在我想要得到一個百分比的過程。 我想:

select (count(*)/20000) from table 

select cast( (count(*)/20000) as DECIMAL(6,4) ) from table 

,但他們都返回0,

,所以我怎麼能做到這一點?

如果能顯示百分比,那就更好了。

謝謝

回答

3

整數除法返回一個整數,小數部分被截斷。您可以通過20000.0劃分:

select (count(*)/20000.0) from table 

Demo

MSDN/(Divide)

如果一個整數股息由一個整數除數相除,結果是 有任何小數部分的整結果被截斷。

1
Select CONVERT(DECIMAL(6,4),COUNT(*))/CONVERT(DECIMAL(6,4),20000) FROM TABLE 

- 其重要的是你明確匹配類型,因爲不是所有的數字都是整數,而不是所有的小數都是一樣的。 DECIMAL(6,4)實際上是它自己的數據類型,與DECIMAL(6,3)不一樣。