這是我用來重現該問題的表定義:create table test_sum_type ( kind char(1) not null, n tinyint not null);測試數據:+------+---+ | kind | n | +------+---+ | A | 1 | | B | 1 | | A | 2 | +------+---+ 如您所見,Decimal當我使用時,結果列是a sum。我已經研究了MySQLdb的源代碼,只有兩種字段類型設置為Decimal默認轉換為:DECIMAL和NEWDECIMAL。這可能是什么原因?有什么方法可以檢查特定查詢中使用的某些臨時表的架構嗎?
1 回答

茅侃侃
TA貢獻1842條經驗 獲得超22個贊
這是設計使然的MySql。
GROUP BY(聚合)函數
SUM()和AVG()函數為精確值參數(整數或DECIMAL)返回DECIMAL值,為近似值參數(FLOAT或DOUBLE)返回DOUBLE值。(在MySQL 5.0.3之前,SUM()和AVG()對于所有數字參數都返回DOUBLE。)
如果您需要返回,INT則返回CAST它。
SELECT kind, CAST(SUM(n) AS SIGNED) n
FROM table1
GROUP BY kind
添加回答
舉報
0/150
提交
取消