2013-03-20 104 views
0

時修復數據截斷我有如下表:使用SQL聚合函數

avg_duration BIGINT UNSIGNED, 
count BIGINT UNSIGNED 

我計算在多條記錄這樣的加權平均持續時間:SUM({avg_duration}*{count})/SUM({count})。 問題是,當有很多記錄和足夠大的值count時,SUM({avg_duration}*{count})部分變得太大,我得到數據截斷異常。 我曾考慮將DOUBLE用於列類型而不是BIGINT。 有更好的解決方案嗎?

回答

0

您可以在查詢中轉換爲DOUBLE,而不是更改表格定義,例如SUM((CONVERT(DOUBLE, avg_duration) * CONVERT(DOUBLE, count))/SUM(CONVERT(DOUBLE, count))

+0

我會檢查一下。絕對比改變表格定義更好。我仍然在尋找一些不太暴力的東西。但如果我很快沒有得到更好的答案,我會接受你的。謝謝 – daramasala 2013-03-20 12:19:42